一些關於Vue3的更改和調整

2021-10-06 04:08:19 字數 2192 閱讀 5564

距離vue3.0 bate 版正式發布已經1個月了。

不過不需要擔心學不動的問題,因為現在vue3是完全相容vue2的,你可以在vue3中繼續使用vue2,甚至可以兩者一起使用。還有很重要的一點,vue2還會再更新乙個版本,讓大家能完美過渡到vue3

vue3對使用者來說最大的改變應該就是composition api

文件位址 (昨天更新了中文文件)

vue2中我們的optionapi的寫法:

data()

},methods:

,mounted()

,...

...

這種寫法的好處就是把程式的功能型別整合到了一起,你是什麼型別就去哪個隊伍中。但是隨著vue專案越來越大,維護起來就也越發麻煩,我們修改乙個方法,需要在data,methods,computed,watch以及各個生命週期中反覆跳躍,然後就出現了這種情況——明明只換了一塊磚,我房子怎麼塌了。

因此,vue3中進行了修改,大概就是下面這個樣子。

setup()

;}

這…56個民族56朵花,56個兄弟姐妹是一家?是的,data,methods,computed...等等,我不管你是誰,是用來幹嘛的,全給你寫一起。嘖嘖嘖,聽起來就很粗暴的樣子,那實際效果的話,直接上圖吧。

相同的顏色塊代表同乙個功能,這樣可以看到,在更新之後,一塊區域就是乙個功能,只要開發者不是乙個喜歡挑戰極限的多人運動員的話,維護起來真的不要太舒服。

下面介紹一下其中的調整:

options api

composition api

beforecreate

setup()

created

setup()

beforemount

onbeforemount

mounted

onmounted

beforeupdate

onbeforeupdate

updated

onupdated

beforedestroy

onbeforeunmount

destroyed

onunmounted

errorcaptured

onerrorcaptured

改變不算太大,以往的mode: history變成了history: routerhistory,然後在頁面使用時不再是this.$router,而是先引用再宣告:

import

from

'vue-router'

setup()

其中,好像useroute監聽步到router-link下的傳遞的引數。

這個也沒啥變化,也是先引用再宣告使用。

vue中的自定義指令。使用方法沒有變,但是原來的bindinserted等一系列鉤子都失效了,換成updated,mounted等可以使用 。

這個功能我太喜歡了。顧名思義,搖動樹的時候會搖掉一些新陳代謝掉的沒用的樹葉。其實,我喜歡叫它hair-dragging,畢竟頭髮對於我們這個行業的同學們更形象,也更深刻。

這個功能的加入會在我們儲存**時,告訴我們哪些東西是沒用的,錯誤的。比如我定義了乙個name卻沒有使用,它就會報錯給我們,這樣節省了一部分不必要的開支。

其他的話等慢慢總結,慢慢發現。

github: jarry007

vue3關於 sync的用法

場景描述 我們都知道,子元件是不能夠去修改父元件傳遞過來的資料。因為如果子元件去修改父元件件傳遞過來的資料。會導致資料的應用流向變得難以理解。但是有些時候,我們需要當子元件的資料變化後,父元件的資料也跟著變化。vue2中我們可以使用.sync來解決這個辦法。那麼vue3應該怎麼去處理這個問題了?這個...

關於vue的一些總結

最近學習了一段時間的vue js 除了路由沒用過之外 基本上其他的都用過了 對於vue的一些用法 在此做乙個總結。開始使用vue之前 需要匯入vuejs這個檔案到專案中 在做專案的過程中 我們基本上需要用到的就是vue的雙向繫結 條件與迴圈了 下面先介紹一下vue的雙向繫結 指令 v model v...

Vue2和Vue3的區別

vue2 的雙向資料繫結是利用es5 的乙個 api object.definepropert 對資料進行劫持 結合 發布訂閱模式的方式來實現的。vue3 中使用了 es6 的 proxyapi 對資料 相比於vue2.x,使用proxy的優勢如下 1 defineproperty只能監聽某個屬性,...