公主的腿间舌奴们np肉_国产在热线精品视频99公交_公主车上荫蒂添的好舒服_公侵犯人妻中文字慕一区二区_公么大龟弄得我好舒服秀_公交车+多人+高cH文章推荐_日本熟妇另类视频在线播放

前端經(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()方法進行處理,復(fù)雜數(shù)據(jù)類型使用reactive()方法進行處理。
    • 使用setup()方法來返回響應(yīng)式數(shù)據(jù),在template可以獲取這些響應(yīng)式數(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ù)的返回值進行相應(yīng)操作。

diff算法

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

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

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











來源:csdn



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

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



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



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

日歷

鏈接

個人資料

藍藍設(shè)計的小編 http://tweetduck.com

存檔

博湖县| 蓬安县| 农安县| 罗山县| 江津市| 肥西县| 基隆市| 萨迦县| 进贤县| 叙永县| 寿阳县| 奉节县| 溧水县| 诸城市| 阿勒泰市| 安庆市| 寻甸| 庆元县| 三亚市| 惠州市| 洛南县| 昔阳县| 延边| 崇礼县| 嵊泗县| 秭归县| 雷波县| 青海省| 内乡县| 铜梁县| 太湖县| 元江| 乌拉特中旗| 炉霍县| 革吉县| 轮台县| 汝州市| 新余市| 义乌市| 讷河市| 任丘市|