国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue2和vue3的區(qū)別(Vue3升級(jí)部分)

這篇具有很好參考價(jià)值的文章主要介紹了vue2和vue3的區(qū)別(Vue3升級(jí)部分)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

區(qū)別有兩個(gè)目的:一面試說一下書面化的表達(dá),二工作需要升級(jí)大白話說一下項(xiàng)目應(yīng)用的區(qū)別。

雙向數(shù)據(jù)綁定:

vue2 的雙向數(shù)據(jù)綁定是利?ES5 的?個(gè) API ,Object.defineProperty()對(duì)數(shù)據(jù)進(jìn)?劫持 結(jié)合 發(fā)布訂閱(getter&setter)模式的?式來實(shí)現(xiàn)的。

vue3 中使?了 ES6 的 ProxyAPI 對(duì)數(shù)據(jù)代理,使?ref或者reactive將數(shù)據(jù)轉(zhuǎn)化為響應(yīng)式數(shù)據(jù),從? 實(shí)現(xiàn)對(duì)數(shù)據(jù)的監(jiān)控。

?應(yīng)用就是:2中監(jiān)聽數(shù)據(jù)是單層的,有些數(shù)組,對(duì)象內(nèi)部變化存在監(jiān)聽不到,對(duì)某些修改需要用$set強(qiáng)刷新賦值;3中不需要了類似可以實(shí)現(xiàn)內(nèi)部監(jiān)聽。

實(shí)例化main.js:

2中new出的實(shí)例對(duì)象,所有的東西都在這個(gè)vue對(duì)象上,template里必須要有一個(gè)根元素,是否都會(huì)跑?遍,性能消耗大。

3按需導(dǎo)出了一個(gè)createApp 中,template里不要求只有一個(gè)根元素,可以?ES module imports按需引?,如:keep-alive內(nèi)置組件、v-model指令,減少 了內(nèi)存消耗。

生命周期:

beforeCreate -> setup()

created ->? setup()

beforeMount -> onBeforeMount

mounted -> onMounted

beforeUpdate -> onBeforeUpdate

updated -> onUpdated

beforeDestroy -> onBeforeUnmount

destroyed -> onUnmounted

errorCaptured -> onErrorCaptured

3中使用setup語法糖即可直接寫,各個(gè)生命周期意思不做贅述

數(shù)據(jù)和方法的定義:

2使?的是選項(xiàng)類型API(Options API)【在代碼中分割不同屬性:data,computed,methods等】:data() { return {}; }, methods:{ }

3使?的是合成型API(Composition API):setup中定義函數(shù)和屬性,統(tǒng)一return{}

父子間傳參(props&emits):

2中this.props獲取,this.$emit使用,

3中setup中setup(props,context){context.emit(),props}兩個(gè)參數(shù)獲取,setup語法糖如下

<script lang="ts" setup>
1...prop定義使用
//interface 定義
interface Props {
	show: boolean
	isUpdate: boolean
	title?: string
	width?: string
}
//withDefaults賦予初始數(shù)據(jù)
const props = withDefaults(defineProps<Props>(), {
	show: false,
	isUpdate: false,
	width: "800px"
})

2...子向父暴露可用函數(shù)
//子組件
defineExpose({函數(shù)名逗號(hào)隔開})
//父組件
<keep-alive>
	<component :is="part" v-show="part" :show="showRef" ref="componentRef"></component>
</keep-alive>
componentRef.value?.函數(shù)名()

3...子組件emit
//定義
const emits = defineEmits(["handle1", "handle2", ...])
//調(diào)用
emits("handle1",參數(shù))

指令和插槽的使用不同

2中不建議將v-for和v-if寫在一起使用,允許直接使用slot

3中將v-if當(dāng)作v-for大的一個(gè)判斷語句,不會(huì)相互沖突;移除keyCode作為v-on的修飾符,不支持config.keyCodes;移除v-on.native修飾符;移除過濾器filter;不允許直接使用slot,正確格式為 v-slot

其他使用區(qū)別繼續(xù)更新,setup語法糖還是比較好用的,建議直接走項(xiàng)目學(xué)習(xí)比較好文章來源地址http://www.zghlxwxcb.cn/news/detail-656507.html

到了這里,關(guān)于vue2和vue3的區(qū)別(Vue3升級(jí)部分)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何升級(jí)Vue的版本 vue2.9.6升級(jí)到vue3.0

    如何升級(jí)Vue的版本 vue2.9.6升級(jí)到vue3.0

    背景:電腦使用多年,一直使用vue 2.x版本,項(xiàng)目開發(fā)過程中由于一個(gè)模塊涉及的集成模塊過多,導(dǎo)致需要進(jìn)行定義的變量越來越多,代碼出現(xiàn)冗余,因此在同事的推動(dòng)下,鑒于vue 3.x的優(yōu)化,故對(duì)自己本來使用的vue 2.9.6升級(jí)到vue 3.0版本。那么如何升級(jí)呢,請(qǐng)查閱如下步驟:

    2023年04月08日
    瀏覽(21)
  • vue3和vue2區(qū)別

    在 Vue 2 中,使用了 Object.defineProperty 來實(shí)現(xiàn)數(shù)據(jù)的響應(yīng)式。它通過逐個(gè)定義對(duì)象屬性的方式來進(jìn)行數(shù)據(jù)的劫持和監(jiān)聽。這種方式存在一些限制,例如無法監(jiān)聽新增的屬性,需要使用 Vue 提供的 $set 方法來實(shí)現(xiàn)響應(yīng)式。此外,由于需要逐個(gè)定義屬性,對(duì)于大型對(duì)象或數(shù)組的性能

    2024年01月17日
    瀏覽(20)
  • 從Vue2到Vue3, 一鍵升級(jí)前端開發(fā)技能

    本文的目的,是為了讓已經(jīng)有 Vue2 開發(fā)經(jīng)驗(yàn)的 ? 人 ? ,快速掌握 Vue3 的寫法。 因此, ? 本篇假定你已經(jīng)掌握 Vue 的核心內(nèi)容 ? ,只為你介紹編寫 Vue3 代碼,需要了解的內(nèi)容。 首先,Vue3 新增了一個(gè)叫做組合式 api 的東西,英文名叫 Composition API 。因此 Vue3 的? script ?現(xiàn)在支

    2024年02月08日
    瀏覽(25)
  • vue2和vue3的區(qū)別

    Vue 2和Vue 3是Vue.js框架的兩個(gè)不同版本,下面是它們之間的一些主要區(qū)別: 性能提升:Vue 3在底層進(jìn)行了重寫,使用了更高效的編譯器,生成的代碼更小,在運(yùn)行時(shí)有更快的速度和更低的內(nèi)存消耗。 Composition API:Vue 3引入了Composition API,它使得組件邏輯可以更容易地組織和復(fù)用

    2024年01月18日
    瀏覽(22)
  • vue2與vue3的區(qū)別

    引言:本文講的是vue2與vue3的區(qū)別,其實(shí)這算是老生常談了,vue3出的時(shí)間也很久了,在vue2的基礎(chǔ)上使得整個(gè)框架更加的輕便,在企業(yè)中應(yīng)用vue3的也不少,但是vue2作為經(jīng)典且穩(wěn)定版本也有很多項(xiàng)目在使用,接下來就講講vue2與vue3有哪些區(qū)別。 響應(yīng)式作為vue關(guān)鍵的特性,vue3在

    2024年02月12日
    瀏覽(20)
  • vue2和vue3有啥區(qū)別,vue3的優(yōu)點(diǎn)有哪些?

    Vue.js 是一種流行的 JavaScript 框架,用于開發(fā)現(xiàn)代 Web 應(yīng)用程序。Vue.js 具有簡(jiǎn)單易用、高效和靈活等特點(diǎn),能夠極大地提高開發(fā)效率并改進(jìn)用戶體驗(yàn)。Vue.js 一直在不斷更新和改進(jìn),它的最新版本是 Vue 3。 在本文中,我們將探討 Vue 2 和 Vue 3 的區(qū)別,以及如何從 Vue 2 遷移到 Vu

    2024年02月06日
    瀏覽(31)
  • vue2+webpack升級(jí)vue3+vite,在vue3組合式編程中使用vuex

    同學(xué)們可以私信我加入學(xué)習(xí)群! 我的項(xiàng)目是從vue2+webpack升級(jí)為vue3+vite,這種升級(jí)工作,其實(shí)最重要的不是如何快速準(zhǔn)確地把原有vue2項(xiàng)目全部重構(gòu)為vue3項(xiàng)目,因?yàn)檫@是不現(xiàn)實(shí)的。 升級(jí)工作一定是一個(gè)長(zhǎng)久的持續(xù)過程,所以如何保證舊的vue2項(xiàng)目與新的vue3模塊之間互相兼容,才

    2024年01月18日
    瀏覽(31)
  • 關(guān)于前端框架vue2升級(jí)為vue3的相關(guān)說明

    關(guān)于前端框架vue2升級(jí)為vue3的相關(guān)說明

    一些框架需要升級(jí) 當(dāng)前(202306) Vue 的最新穩(wěn)定版本是 v3.3.4 。Vue 框架升級(jí)為最新的3.0版本,涉及的相關(guān)依賴變更有: 前提條件:已安裝 16.0 或更高版本的Node.js(摘) 必須的變更:核心庫vue@23、路由vue-router@34、狀態(tài)管理vuex@34 構(gòu)建工具鏈: Vue CLI Vite(摘) 狀態(tài)管理: Vuex Pi

    2024年02月15日
    瀏覽(63)
  • vue2升級(jí)為vue3 vuedraggable 拖動(dòng)組件報(bào)錯(cuò)

    升級(jí)組件 npm i -S vuedraggable@next 使用示例 2、Item slot must have only one child 官方GitHub - SortableJS/vue.draggable.next: Vue 3 compatible drag-and-drop component based on Sortable.js ?官方demo https://sortablejs.github.io/vue.draggable.next/#/two-lists

    2024年02月16日
    瀏覽(23)
  • Vue3和Vue2有什么區(qū)別?

    先來說說Vue3相對(duì)于Vue2的優(yōu)點(diǎn)吧: 更快的渲染速度 更小的體積 更少的內(nèi)存占用 更豐富的功能 聽起來好像Vue3比Vue2強(qiáng)很多啊,但是具體強(qiáng)在哪里呢?我們來看幾個(gè)代碼例子: 首先是安裝Vue3和Vue2: 在Vue3中,如果你想注冊(cè)一個(gè)組件,你可以這樣做: 而在Vue2中,你需要這樣做:

    2024年02月08日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包