從 Vue 1.x 遷移到2.x - vue.js

安裝vue migration工具

npm install -g vue-migration-helper

vue-migration-helper src //掃描src目錄下的所有文件

https://www.npmjs.com/package/vue-migration-helper

官方遷移文檔

http://cn.vuejs.org/v2/guide/migration.html

1. ready生命周期方法被移除(包括組件及頁(yè)面)征绎,替換為:

mounted: function () {

this.$nextTick(function () {

//代碼保證this.$el在document中

})

}

2. v-for的變更

遍歷數(shù)組:包含index時(shí)挺智,之前遍歷數(shù)組時(shí)的參數(shù)順序是(index, value)∶蚕Γ現(xiàn)在是(value, index)厂画,來(lái)和JavaScript的原生數(shù)組方法(例如forEach和map)保持一致州泊。

遍歷對(duì)象:當(dāng)包含key時(shí)冶共,之前遍歷對(duì)象的參數(shù)順序是(key, value)∈粗現(xiàn)在是(value, key),來(lái)和常見(jiàn)的對(duì)象迭代器(例如lodash)保持一致翅睛。

*已經(jīng)移除了$index和$key

track-by已經(jīng)替換為key,原來(lái):

track-by="id">声搁,現(xiàn)在

3. v-bind的.once和.sync修飾符移除

4.Props現(xiàn)在只能單向傳遞黑竞。為了對(duì)父組件產(chǎn)生反向影響,子組件需要顯式地傳遞一個(gè)事件而不是依賴(lài)于隱式地雙向綁定疏旨。

5.修改Props棄用

組件內(nèi)修改prop是反模式(不推薦的)的很魂。比如,先聲明一個(gè)prop充石,然后在組件中通過(guò)this.myProp =

'someOtherValue'改變prop的值莫换。根據(jù)渲染機(jī)制,當(dāng)父組件重新渲染時(shí)骤铃,子組件的內(nèi)部prop值也將被覆蓋。

大多數(shù)情況下坷剧,改變prop值可以用以下選項(xiàng)替代:

通過(guò)data屬性惰爬,用prop去設(shè)置一個(gè)data屬性的默認(rèn)值。

通過(guò)computed屬性惫企。

6.用v-on監(jiān)聽(tīng)原生事件變更

現(xiàn)在在組件上使用v-on只會(huì)監(jiān)聽(tīng)自定義事件(組件用$emit觸發(fā)的事件)撕瞧。如果要監(jiān)聽(tīng)根元素的原生事件,可以使用.native修飾符狞尔,比如:

7.帶有-debounce-的-v-model移除

http://cn.vuejs.org/v2/guide/migration.html#帶有-debounce-的-v-model移除

8.帶有!importantv-bind:style移除

這樣寫(xiě)將失效:

hello

如果確實(shí)需要覆蓋其它的!important丛版,最好用字符串形式去寫(xiě):

hello

9.v-elv-ref替換

簡(jiǎn)單起見(jiàn),v-el和v-ref合并為一個(gè)ref屬性了偏序,可以在組件實(shí)例中通過(guò)$refs來(lái)調(diào)用页畦。這意味著v-el:my-element將寫(xiě)成這樣:ref="myElement",v-ref:my-component變成了這樣:ref="myComponent"研儒。綁定在一般元素上時(shí)豫缨,ref指DOM元素,綁定在組件上時(shí)端朵,ref為一組件實(shí)例好芭。

因?yàn)関-ref不再是一個(gè)指令了而是一個(gè)特殊的屬性,它也可以被動(dòng)態(tài)定義了冲呢。這樣在和v-for結(jié)合的時(shí)候是很有用的:

10.自定義指令簡(jiǎn)化

在新版中舍败,指令的使用范圍已經(jīng)大大減小了:現(xiàn)在指令僅僅被用于低級(jí)的DOM操作。大多數(shù)情況下敬拓,最好是把模板作為代碼復(fù)用的抽象層邻薯。

顯要的改變有如下幾點(diǎn):

指令不再擁有實(shí)例。意思是恩尾,在指令的鉤子函數(shù)中不再擁有實(shí)例的this弛说。替代的是,你可以在參數(shù)中接受你需要的任何數(shù)據(jù)翰意。如果確實(shí)需要木人,可以通過(guò)el來(lái)訪問(wèn)實(shí)例信柿。

類(lèi)似acceptStatement,deep醒第,priority等都已被棄用渔嚷。為了替換雙向指令,見(jiàn)示例稠曼。

現(xiàn)在有些鉤子的意義和以前不一樣了形病,并且多了兩個(gè)鉤子函數(shù)。

幸運(yùn)的是霞幅,新鉤子更加簡(jiǎn)單漠吻,更加容易掌握。詳見(jiàn)自定義指令指南司恳。

http://cn.vuejs.org/v2/guide/custom-directive.html

11.指令.literal修飾符移除

.literal修飾符已經(jīng)被移除途乃,為了獲取一樣的功能,可以簡(jiǎn)單地提供字符串修飾符作為值扔傅。

示例耍共,如下更改:

只是:

12.屬性?xún)?nèi)部的計(jì)算插值移除

屬性?xún)?nèi)部的計(jì)算插值已經(jīng)不能再使用了:

< div class="btn btn-{{ size }}" >

應(yīng)該寫(xiě)成行內(nèi)表達(dá)式:

< div v-bind:class="'btn btn-'+ size " >

或者計(jì)算屬性:

computed: {

buttonClasses: function () {

return 'btn btn-' + size

}

}

13.HTML計(jì)算插值移除

HTML的計(jì)算插值({{{ foo }}})已經(jīng)移除,取代的是v-html指令.

14.替換vm.$data移除

現(xiàn)在禁止替換實(shí)例的$data猎塞。這樣防止了響應(yīng)系統(tǒng)的一些極端情況并且讓組件狀態(tài)更加可控可預(yù)測(cè)(特別是對(duì)于存在類(lèi)型檢查的系統(tǒng))试读。

過(guò)濾器

1.過(guò)濾器參數(shù)符號(hào)變更

現(xiàn)在過(guò)濾器參數(shù)形式可以更好地與js函數(shù)調(diào)用方式一致,因此不用再用空格分隔參數(shù):

{{ date | formatDate 'YY-MM-DD' timeZone }}

現(xiàn)在用圓括號(hào)括起來(lái)并用逗號(hào)分隔:

{{ date | formatDate('YY-MM-DD', timeZone) }}

2.現(xiàn)在過(guò)濾器只能用在插入文本中({{ }}tags)荠耽。我們發(fā)現(xiàn)在指令(如:v-model钩骇,v-on等)中使用過(guò)濾器使事情變得更復(fù)雜。像v-for這樣的列表過(guò)濾器最好把處理邏輯作為一個(gè)計(jì)算屬性放在js里面骇塘,這樣就可以在整個(gè)模板中復(fù)用伊履。

總之,能在原生js中實(shí)現(xiàn)的東西款违,我們盡量避免引入一個(gè)新的符號(hào)去重復(fù)處理同樣的問(wèn)題唐瀑。

3.內(nèi)置的過(guò)濾器被移除:filterBylimitBydebounceorderBycurrencyuppercasejson等

自己在遷移項(xiàng)目時(shí)遇到的坑:

1.0v-model可以直接加過(guò)濾器,2.0里取消了插爹,不可以在v-model里增加過(guò)濾

頁(yè)面上一些書(shū)寫(xiě)錯(cuò)誤可能就導(dǎo)致Failed to

generate render function渲染功能失敗哄辣,可能是因?yàn)橐粋€(gè)逗號(hào)或者別的書(shū)寫(xiě)錯(cuò)誤都可能導(dǎo)致渲染失敗

vue2.0不支持vueTouch

v-for="item in coupons|filterBy 1 in 'isAvailable'"現(xiàn)在寫(xiě)法v-for="item in coupons"

v-if="item.isAvailable==1"

如果在組件中定義了this.$emit('close'),在組件外引用的時(shí)候一點(diǎn)要@close="showArea

= false"不然不起作用

在輸入框組件上寫(xiě)v-model無(wú)效先聚焦一下才能用

一定要做空指針判斷

傳到組件里的變量不能做運(yùn)算赠尾,帖子詳情頁(yè)評(píng)論數(shù)增加問(wèn)題力穗,不能實(shí)時(shí)增加,在回調(diào)里增加

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末气嫁,一起剝皮案震驚了整個(gè)濱河市当窗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寸宵,老刑警劉巖崖面,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件元咙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡巫员,警方通過(guò)查閱死者的電腦和手機(jī)庶香,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)简识,“玉大人赶掖,你說(shuō)我怎么就攤上這事∑呷牛” “怎么了奢赂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)颈走。 經(jīng)常有香客問(wèn)我呈驶,道長(zhǎng),這世上最難降的妖魔是什么疫鹊? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮司致,結(jié)果婚禮上拆吆,老公的妹妹穿的比我還像新娘。我一直安慰自己脂矫,他們只是感情好枣耀,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著庭再,像睡著了一般捞奕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拄轻,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天颅围,我揣著相機(jī)與錄音,去河邊找鬼恨搓。 笑死院促,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的斧抱。 我是一名探鬼主播常拓,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼辉浦!你這毒婦竟也來(lái)了弄抬?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宪郊,失蹤者是張志新(化名)和其女友劉穎掂恕,沒(méi)想到半個(gè)月后拖陆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竹海,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年慕蔚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斋配。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡孔飒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艰争,到底是詐尸還是另有隱情坏瞄,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布甩卓,位于F島的核電站鸠匀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏逾柿。R本人自食惡果不足惜缀棍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望机错。 院中可真熱鬧爬范,春花似錦、人聲如沸弱匪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萧诫。三九已至斥难,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帘饶,已是汗流浹背哑诊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尖奔,地道東北人搭儒。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像提茁,于是被迫代替她去往敵國(guó)和親淹禾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容茴扁,還有我對(duì)于 Vue 1.0 印象不深的內(nèi)容铃岔。關(guān)于...
    云之外閱讀 5,050評(píng)論 0 29
  • 1.安裝 可以簡(jiǎn)單地在頁(yè)面引入Vue.js作為獨(dú)立版本,Vue即被注冊(cè)為全局變量,可以在頁(yè)面使用了毁习。 如果希望搭建...
    Awey閱讀 11,023評(píng)論 4 129
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,209評(píng)論 0 6
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理智嚷,服務(wù)發(fā)現(xiàn),斷路器纺且,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 如果你曾經(jīng)的靈魂住進(jìn)了現(xiàn)在的身體盏道,她會(huì)不會(huì)對(duì)你失望?看了《二十八歲未成年》之后载碌,我突然想問(wèn)自己這樣一個(gè)問(wèn)題猜嘱。 我曾...
    Tractor閱讀 191評(píng)論 0 0