• <abbr id="chdyf"></abbr>
    <ruby id="chdyf"><acronym id="chdyf"><meter id="chdyf"></meter></acronym></ruby>
    <bdo id="chdyf"></bdo>
    <dfn id="chdyf"><menu id="chdyf"></menu></dfn>
    1. <menuitem id="chdyf"></menuitem><strong id="chdyf"><menu id="chdyf"></menu></strong>

      <rt id="chdyf"><menu id="chdyf"></menu></rt>
      成人小说一区二区三区,伊人精品成人久久综合全集观看,久久HEZYO色综合,中文字幕精品人妻熟女,影音先锋成人网站,我要看免费一级毛片,中国女人做爰A片,中文字幕av久久爽Av

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

      2023-1-9    前端達(dá)人

      目錄

      一、回答點(diǎn)

      二、深入回答

      監(jiān)測(cè)機(jī)制的變化

      Fragments(碎片)

      API模式的變化

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

      生命周期鉤子

      父子傳參

      diff算法

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


      一、回答點(diǎn)

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

      二、深入回答

      監(jiān)測(cè)機(jī)制的變化

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

      Fragments(碎片)

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

      API模式的變化

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

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

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

      生命周期鉤子

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

      父子傳參

      • 子組件通過(guò)defineProps()進(jìn)行接收,并且接收這個(gè)函數(shù)的返回值進(jìn)行相應(yīng)操作。

      diff算法

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

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

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











      來(lái)源:csdn



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

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



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



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

      日歷

      鏈接

      個(gè)人資料

      存檔