vue2和vue3的區(qū)別(vue3和vue2的優(yōu)缺點)
Vue3支持大多數(shù)的Vue2的特性 3Vue中設計了一套強大的組合API代替了Vue2中的option API , 復用性更強了 4更好的支持TS 5Vue3中使用了Proxy配合Reflect代替了Vue2中objectdefineProperty方法實現(xiàn)數(shù)據(jù)的。
1vue2是一個構造函數(shù),通過該構造函數(shù)創(chuàng)建一個Vue實例 2Vue3是一個對象并通過該對象的createApp方法,創(chuàng)建一個vue實例1Vue2可以通過el選項和$mount方法來掛載容器2Vue3只能。
1速度更快 2體積更小 相比Vue2,Vue3整體體積變小了,除了移出一些不常用的API,再重要的是Tree shanking 任何一個函數(shù),如refreavtivedcomputed等,僅僅在用到的時候才打包,沒用到的模塊都被搖掉,打包的整。
1vue2相較vue3代碼可讀性比較差vue2中選項API格式的代碼的可讀性較差,當需要實現(xiàn)的某一個功能涉及到多個屬性的時候,就會出現(xiàn)在 props中接收參數(shù) 在data中定義變量 在watch中監(jiān)聽變化 在computed中定義需要使用到的計算。
1創(chuàng)建實例方式不同20 使用構造函數(shù)new Vue的方式,將選項對象通過參數(shù)傳入30 使用VuecreateApp靜態(tài)方法創(chuàng)建參數(shù)依然是選項多先發(fā)20 使用 符2定義指令組件等方法的不同 20 定義指令和組件。
Vue30不論是原生的html標簽還是vue組件,他們都會通過h函數(shù)來判斷,如果是原生html標簽,在運行時直接通過Virtual Dom來直接渲染,同樣如果是組件會直接生成組件代碼數(shù)據(jù)監(jiān)聽,Vue2x大家都知道使用的是es5的。
1Vue3的Template支持多個根標簽,Vue2不支持2Vue3有createApp,而Vue2的是newVuecreateApp組件,newVuetemplate,render3vmodel代替以前的vmodel和syncvue3中vmodel的用法要求props屬性名任意。
相比 vue2x ,使用 proxy 的優(yōu)勢如下在 vue2 中定義數(shù)據(jù)變量是 data ,創(chuàng)建的方法要在 methods 中而在 vue3 中直接在 setup 中,在這里面定義的變量和方法因為最終要在模板中使用,所以最后都得。
vue2 是一個構造函數(shù),通過new創(chuàng)建一個Vue實例 vue3是一個對象通過對象Vue的createApp方法創(chuàng)建一個vue實例 vue2 vue3 vue2 可以是一個對象或者由方法返回一個對象 vue3只能由方法返回一個對象 vue2的屬性不具備相應。
vue3使用vmodel組件通信 相當于子組件中的pVisible與父組件中的isVisible雙向綁定了,比vue2傳統(tǒng)方法簡化很多Teleport 有兩個div分別是box1和box2,據(jù)經(jīng)驗所知,即使box1的孩子el1的zindex為10,el1的層級也沒有。
但是在 Vue3 生周期鉤子不是全局可調(diào)用的了,需要另外從vue中引入和剛剛引入reactive一樣,生命周期的掛載鉤子叫onMounted引入后我們就可以在setup方法里面使用onMounted掛載的鉤子了在 Vue2 中實現(xiàn),我們只需要在組件。
vue2選項api和vue3組合式api的區(qū)別的如下就是API的使用方式,在Vue2中使用的是選項APIOptions,API在Vue3中使用的組合APIComposition,API一什么是選項API寫法如下1代碼風格data選項寫數(shù)據(jù),methods選項寫函數(shù)一個。
可讀性不好,可維護性也不好,對比Vue3語法,更加的邏輯分明,可維護性也高vue3跟vue2在使用時語法的不同,vue3開發(fā)的項目要用vue3的語法,雖然vue3的語法可以兼容vu2的語法,但還是不要混用。
大vue2的雙向數(shù)據(jù)綁定Q是利用ES5的一個AP1,ObiectdefineProperty0對數(shù)據(jù)進行劫持結(jié)合發(fā)布訂閱模式的方式來實現(xiàn)的vue3中使用了ES6的ProxvA1對數(shù)據(jù)代理,通過reactive函數(shù)給每個對象都包一層Proxy,過Proxy監(jiān)聽屬性的變化。
1將lteltablecolumn標簽的屬性定義為一個數(shù)組columns,循環(huán)渲染數(shù)據(jù) 2由于vfor和vif不能作用在同一標簽上,所以要用lttemplate包裹所有的lteltablecolumn 3循環(huán)渲染ltlteltablecolumn標簽。
在vue 2x中,使用scss時,深度選擇器是 vdeep ,在vue30中,由于 vdeep 已被棄用,采用一種新的語法如果在vue30中使用 vdeep ,沒有任何效果,也不會報錯,就是在編譯的時候會有一個警告。
掃描二維碼推送至手機訪問。
版權聲明:本文由飛速云SEO網(wǎng)絡優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。