<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 前端經(jīng)典面試題 | 吊打面試官系列 之 Vue2和Vue3的區(qū)別

          2023-1-9    前端達人

          目錄

          一、回答點

          二、深入回答

          監(jiān)測機制的變化

          Fragments(碎片)

          API模式的變化

          數(shù)據(jù)的存放

          生命周期鉤子

          父子傳參

          diff算法

          v-if和v-for優(yōu)先級


          一、回答點

          監(jiān)測機制的變化、Fragments(碎片)的更新、API模式的變更、數(shù)據(jù)的存放、生命周期鉤子、父子傳參等。。

          二、深入回答

          監(jiān)測機制的變化

          • Vue3中使用了ES6中Proxy API 對數(shù)據(jù)進行代理,監(jiān)測整個對象,而不再是某個屬性。
          • 消除Vue2中基于Object.defineProperty的實現(xiàn)所存在的諸多限制。
          • Vue3可以監(jiān)測到對象屬性的添加和刪除也可以監(jiān)聽到數(shù)組的變化。
          • Vue3中支持Map、Set、WeakMap和WeakSet

          Fragments(碎片)

          • Vue2在組件中只能有一個根節(jié)點。
          • Vue3在組件中可以擁有多個根節(jié)點。

          API模式的變化

          • Vue2使用選項式API(Options API)。Vue3使用組合式API(Composition API)

          數(shù)據(jù)的存放

          • Vue2中數(shù)據(jù)存放在data屬性中
          • Vue3使用setup()方法,setup()方法在組件初始化構(gòu)造的時候觸發(fā)。
            • 從vue引入ref或reactive
            • 簡單數(shù)據(jù)類型使用ref()方法進行處理,復雜數(shù)據(jù)類型使用reactive()方法進行處理。
            • 使用setup()方法來返回響應式數(shù)據(jù),在template可以獲取這些響應式數(shù)據(jù)。

          生命周期鉤子

          • setup():開始創(chuàng)建組件之前,在beforeCreate和created之前執(zhí)行。
          • onBeforeMount():組件掛載到節(jié)點之前執(zhí)行。
          • onMounted():組件掛載完成之后執(zhí)行。
          • onBeforeUpdate():組件更新之前執(zhí)行。
          • onUpdated():組件更新之后執(zhí)行。
          • onBeforeUnmount():組件卸載之前執(zhí)行。
          • onUnmounted():組件卸載之后執(zhí)行
            • 若組件被keep-alive包裹,則多出兩個鉤子函數(shù)
              • onActivated():被激活時執(zhí)行。
              • onDeactivated():A組件切換到B組件。A組件消失時執(zhí)行。

          父子傳參

          • 子組件通過defineProps()進行接收,并且接收這個函數(shù)的返回值進行相應操作。

          diff算法

          • Vue2:進行虛擬節(jié)點對比,并返回一個patch對象來存儲兩個節(jié)點的不同,最后用patch記錄的消息去局部更新Dom。它會比較每一個Vnode但對一些不參與更新的元素,進行比較會消耗性能。
          • Vue3:diff算法在初始化時會給每個虛擬節(jié)點一個patchFlags(優(yōu)化的一個標識)。只會比較patchFlags發(fā)生變化的Vnode,從而進行視圖更新,對比沒有變化的做靜態(tài)標記,渲染時直接復用。

          v-if和v-for優(yōu)先級

          • Vue2中:v-for優(yōu)先執(zhí)行
          • Vue3中:v-if優(yōu)先執(zhí)行
          • 注:最好不要把v-if和v-for同時用在一個元素上,這樣會帶來性能的浪費











          來源:csdn



          藍藍設計建立了UI設計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~

          希望得到建議咨詢、商務合作,也請與我們聯(lián)系01063334945。 



          分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。 



          藍藍設計m.sdgs6788.com )是一家專注而深入的界面設計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網(wǎng)站建設 平面設計服務UI設計公司、界面設計公司、UI設計服務公司、數(shù)據(jù)可視化設計公司、UI交互設計公司、高端網(wǎng)站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://m.sdgs6788.com

          存檔

          欧美无乱码久久久免费午夜一区二区三区中文字幕| 亚洲日本va午夜中文字幕久久| 久久精品国产亚洲av日韩| 性欧美大战久久久久久久久| 99久久免费国产精品热| 久久婷婷人人澡人人| 日韩久久久久久中文人妻| 久久er国产精品免费观看2| 久久成人精品| 99久久久精品免费观看国产| 办公室久久精品| 亚洲AV日韩AV永久无码久久| 91久久国产视频| 无码国产69精品久久久久网站 | 久久精品国产久精国产| 久久久黄片| 好属妞这里只有精品久久| 久久久久久久久久久| 久久97久久97精品免视看| 亚洲国产精品无码久久98| 久久久精品国产亚洲成人满18免费网站| 久久精品人妻中文系列| 久久人人爽人人爽人人片AV麻豆| 久久午夜伦鲁片免费无码| 久久久久97国产精华液好用吗| 精品久久久久久久无码 | 99久久国产综合精品成人影院 | 久久久精品人妻一区二区三区四| 97超级碰碰碰碰久久久久| 97久久国产亚洲精品超碰热| 女人高潮久久久叫人喷水| 国产成人精品久久| 国产精品免费看久久久| 久久精品天天中文字幕人妻| 无码久久精品国产亚洲Av影片| 中文精品久久久久人妻不卡| 色播久久人人爽人人爽人人片aV| 99久久精品国产一区二区三区 | 亚洲精品无码久久久久AV麻豆| 久久国产免费直播| 久久精品国产亚洲av瑜伽|