中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

面試問Vue2與Vue3的區別怎么回答

發布時間:2023-03-07 16:03:08 來源:億速云 閱讀:106 作者:iii 欄目:編程語言

這篇文章主要講解了“面試問Vue2與Vue3的區別怎么回答”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“面試問Vue2與Vue3的區別怎么回答”吧!

Vue 內部根據功能可以被分為三個大的模塊:響應性 reactivite、運行時 runtime、編輯器 compiler,以及一些小的功能點。那么要說 vue2vue3 的區別,我們需要從這三個方面加小的功能點進行說起。

首先先來說 響應性 reactivite

vue2 的響應性主要依賴 Object.defineProperty 進行實現,但是 Object.defineProperty 只能監聽 指定對象的指定屬性的 getter 行為和 setter 行為,那么這樣在某些情況下就會出現問題。

什么問題呢?

比如說:我們在 data 中聲明了一個對象 person ,但是在后期為 person 增加了新的屬性,那么這個新的屬性就會失去響應性。想要解決這個問題其實也非常的簡單,可以通過 Vue.$set 方法來增加 指定對象指定屬性的響應性。但是這樣的一種方式,在 Vue 的自動響應性機制中是不合理。

所以在 Vue3 中,Vue 引入了反射和代理的概念,所謂反射指的是 Reflect,所謂代理指的是 Proxy。我們可以利用 Proxy 直接代理一個普通對象,得到一個 proxy 實例 的代理對象。在 vue3 中,這個過程通過 reactive 這個方法進行實現。

但是 proxy 只能實現代理復雜數據類型,所以 vue 額外提供了 ref 方法,用來處理簡單數據類型的響應性。ref 本質上并沒有進行數據的監聽,而是構建了一個 RefImpl 的類,通過 setget 標記了 value 函數,以此來進行的實現。所以 ref 必須要通過 .value 進行觸發,之所以要這么做本質是調用 value 方法

接下來是運行時 runtime

所謂的運行時,大多數時候指的是 renderer 渲染器,渲染器本質上是一個對象,內部主要三個方法 render、hydrate、createApp ,其中 render 主要處理渲染邏輯,hydrate 主要處理服務端渲染邏輯,而 createApp 就是創建 vue 實例的方法。

這里咱們主要來說 render 渲染函數vue3 中為了保證宿主環境與渲染邏輯的分離,把所有與宿主環境相關的邏輯進行了抽離,通過接口的形式進行傳遞。這樣做的目的其實是為了解綁宿主環境與渲染邏輯,以保證 vue 在非瀏覽器端的宿主環境下可以正常渲染。

再往下是 編輯器 compiler

vue 中的 compiler 其實是一個 DSL(特定領域下專用語言編輯器) ,其目的是為了把 template 模板 編譯成 render 函數。 邏輯主要是分成了三大步: parse、transform 和 generate。其中 parse 的作用是為了把 template 轉化為 AST(抽象語法樹)transform 可以把 AST(抽象語法樹) 轉化為 JavaScript AST,最后由 generateJavaScript AST 通過轉化為 render 函數。轉化的過程中會涉及到一些稍微復雜的概念,比如 有限自動狀態機 這個就不再這里展開說了。

除此之外,還有一些其他的變化。比如 vue3 新增的 composition APIcomposition APIvue3.0vue3.2 中會有一些不同的呈現,比如說:最初的 composition APIsetup 函數作為入口函數, setup 函數必須返回兩種類型的值:第一是對象,第二是函數。

setup 函數返回對象時,對象中的數據或方法可以在 template 中被使用。當 setup 函數返回函數時,函數會被作為 render 函數。

但是這種 setup 函數的形式并不好,因為所有的邏輯都集中在 setup 函數中,很容易出現一個巨大的 setup 函數,我們把它叫做巨石(屎山)函數。所以 vue 3.2 的時候,新增了一個 script setup 的語法糖,嘗試解決這個問題。目前來看 script setup 的呈現還是非常不錯的。

除此之外還有一些小的變化,比如 Fragment、Teleport、Suspense 等等,這些就不去說了.

感謝各位的閱讀,以上就是“面試問Vue2與Vue3的區別怎么回答”的內容了,經過本文的學習后,相信大家對面試問Vue2與Vue3的區別怎么回答這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

泾阳县| 浮山县| 泾川县| 宜城市| 双城市| 新晃| 长沙县| 射洪县| 天长市| 鸡西市| 西乌珠穆沁旗| 太原市| 象州县| 淮北市| 天峨县| 英超| 辉县市| 苍梧县| 新源县| 濉溪县| 集安市| 洛宁县| 新乡县| 吴川市| 南乐县| 萍乡市| 浙江省| 长白| 康乐县| 青河县| 抚远县| 图木舒克市| 同德县| 涪陵区| 闽清县| 阜新市| 新宾| 寻乌县| 玛曲县| 龙海市| 马公市|