最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3對比Vue2的優(yōu)點總結

 更新時間:2021年06月01日 11:50:09   作者:小蟬兒  
vue3解決了vue2的一些缺陷與弊端,學習新的技術是很有必要的,本文總結了一些vue3的優(yōu)點,希望各位能盡快轉入vue3的使用中

1.為什么要有vue3

我們使用vue2常常會遇到一些體驗不太好的地方,比如:

  1. 隨著功能的增長,需求的增加,復雜組件的代碼越來越難以維護,邏輯混亂,雖然vue2也有一些復用的方法,但是都存在一定的弊端,比如我們常常用的Mixin,特別容易發(fā)生命名沖突,暴露出來的變量意圖不是很明顯,重用到其他組件容易沖突。
  2. vue2對于typeScript的支持非常有限,沒有考慮到ts的集成。

vue3的出現就是為了解決vue2的弊端,其composition API很好的解決了邏輯復用的問題,而且vue3源碼就是用ts寫的,對ts的支持非常好。我們在開發(fā)項目過程中可以使用ts的加持,使代碼更加健壯。

2.vue3的優(yōu)點

  1. vue3支持vue2的大多數特性,實現對vue2的兼容
  2. vue3對比vue2具有明顯的性能提升
    1. 打包大小減少41%
    2. 初次渲染快55%,更新快133%
    3. 內存使用減少54%
  3. vue3具有的composition API實現邏輯模塊化和重用
  4. 增加了新特性,如Teleport組件,全局API的修改和優(yōu)化等

3.響應式原理的不同

Vue2.x實現雙向數據綁定原理,是通過es5的 Object.defineProperty,根據具體的key去讀取和修改。其中的setter方法來實現數據劫持的,getter實現數據的修改。但是必須先知道想要攔截和修改的key是什么,所以vue2對于新增的屬性無能為力,比如無法監(jiān)聽屬性的添加和刪除、數組索引和長度的變更,vue2的解決方法是使用Vue.set(object, propertyName, value) 等方法向嵌套對象添加響應式。

Vue3.x使用了ES2015的更快的原生proxy 替代 Object.defineProperty。Proxy可以理解成,在對象之前架設一層“攔截”,外界對該對象的訪問,都必須先通過這層攔截,因此提供了一種機制,可以對外界的訪問進行過濾和改寫。Proxy可以直接監(jiān)聽對象而非屬性,并返回一個新對象,具有更好的響應式支持

4.生命周期的不同

beforeCreate -> 請使用 setup()

created -> 請使用 setup()

beforeMount -> onBeforeMount

mounted -> onMounted

beforeUpdate -> onBeforeUpdate

updated -> onUpdated

beforeDestroy -> onBeforeUnmount

destroyed -> onUnmounted

errorCaptured -> onErrorCaptured

如果要想在頁面中使用生命周期函數,以往vue2的操作是直接在頁面中寫入生命周期,而vue3是需要去引用的,這就是為什么3能夠將代碼壓縮到更低的原因

5.默認項目目錄結構的不同

vue3移除了配置文件目錄,config 和 build 文件夾,移除了 static 文件夾,新增 public 文件夾,并且 index.html 移動到 public 中,在 src 文件夾中新增了 views 文件夾,用于分類視圖組件和公共組件

6.vue3對全局API的優(yōu)化

在 Vue3 中,全局和內部 API 都經過了重構,并考慮到了 tree-shaking 的支持。因此,全局 API現在只能作為 ES 模塊構建的命名導出進行訪問。

import { nextTick } from 'vue'
nextTick(() => {
  // 一些和DOM有關的東西
})

入口文件

// vue2寫法
// vue2全局配置的修改,會修改Vue對象的屬性
// 在不同的app中,共享一份有著不同配置的Vue對象,也變得非常困難
import Vue from 'vue'
import App from './App.vue'
Vue.config.xx=xx
Vue.use(...)
Vue.mixin(...)

new Vue({
  render:h=>h(app)
}).$mount('#app')

// vue3寫法
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(APP) // 創(chuàng)建一個app實例
app.config.xx=xx  // 在實例上修改配置,不會發(fā)生沖突
app.use(...)
app.mixin(...)
app.mount('#app')


7.使用Proxy替代了defineProperty

Proxy 相比于 defineProperty 的優(yōu)勢

Object.defineProperty() 的問題主要有三個:

  • 不能監(jiān)聽數組的變化
  • 必須遍歷對象的每個屬性
  • 必須深層遍歷嵌套的對象

Proxy 在 ES2015 規(guī)范中被正式加入,它有以下幾個特點:

  • 針對對象:針對整個對象,而不是對象的某個屬性,所以也就不需要對 keys 進行遍歷。這解決了上述 Object.defineProperty() 第二個問題
  • 支持數組:Proxy 不需要對數組的方法進行重載,省去了眾多 hack,減少代碼量等于減少了維護成本,而且標準的就是最好的。

除了上述兩點之外,Proxy 還擁有以下優(yōu)勢:

  • Proxy 的第二個參數可以有 13 種攔截方法,這比起 Object.defineProperty() 要更加豐富
  • Proxy 作為新標準受到瀏覽器廠商的重點關注和性能優(yōu)化,相比之下 Object.defineProperty() 是一個已有的老方法。

8.更多資料

vue3源碼
vue3官網

以上就是Vue3對比Vue2的優(yōu)點總結的詳細內容,更多關于Vue3對比Vue2的優(yōu)點的資料請關注腳本之家其它相關文章!

相關文章

  • vue3+elementPlus?table中添加輸入框并提交校驗

    vue3+elementPlus?table中添加輸入框并提交校驗

    這篇文章主要介紹了vue3+elementPlus?table里添加輸入框并提交校驗,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • vue用復選框實現組件且支持單選和多選操作方式

    vue用復選框實現組件且支持單選和多選操作方式

    這篇文章主要介紹了vue用復選框實現組件且支持單選和多選操作方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 十分鐘封裝一個好用的axios步驟示例

    十分鐘封裝一個好用的axios步驟示例

    這篇文章主要為大家介紹了十分鐘封裝一個好用的axios步驟示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 解決vuejs 使用value in list 循環(huán)遍歷數組出現警告的問題

    解決vuejs 使用value in list 循環(huán)遍歷數組出現警告的問題

    今天小編就為大家分享一篇解決vuejs 使用value in list 循環(huán)遍歷數組出現警告的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue的路由及路由鉤子函數的實現

    Vue的路由及路由鉤子函數的實現

    這篇文章主要介紹了Vue的路由及路由鉤子函數的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 基于Vue的延遲加載插件vue-view-lazy

    基于Vue的延遲加載插件vue-view-lazy

    這篇文章主要介紹了基于Vue的延遲加載插件vue-view-lazy,可以使圖片或者其他資源進入可視區(qū)域后加載,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue3中的:deep()深度選擇器詳解

    vue3中的:deep()深度選擇器詳解

    本文講述了"v-deep"深度選擇器被廢棄的情況,作者提醒讀者更新知識庫,避免誤導他人,深度選擇器是HTML5的新屬性,用于實現組件私有化和防止樣式污染,如果想讓樣式中的一個選擇器作用得更深,可以使用深度選擇器,但現在,以前的寫法已不再支持,需要調整方法
    2024-10-10
  • vue頁面圖片不顯示問題解決方案

    vue頁面圖片不顯示問題解決方案

    這篇文章主要介紹了vue頁面圖片不顯示問題解決方案,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-09-09
  • Vue?+?Element?實現按鈕指定間隔時間點擊思路詳解

    Vue?+?Element?實現按鈕指定間隔時間點擊思路詳解

    這篇文章主要介紹了Vue?+?Element?實現按鈕指定間隔時間點擊,實現思路大概是通過加一個本地緩存的時間戳,通過時間戳計算指定時間內不能點擊按鈕,具體實現代碼跟隨小編一起看看吧
    2023-12-12
  • ElementUI動態(tài)渲染el-table的實現過程

    ElementUI動態(tài)渲染el-table的實現過程

    在前端開發(fā)中,表格是不可或缺的一部分,無論是數據展示、數據錄入,還是數據分析,表格都扮演著重要的角色,而在Vue.js生態(tài)系統(tǒng)中,ElementUI提供了一個強大且靈活的表格組件——el-table,本文將帶你深入了解如何使用ElementUI動態(tài)渲染el-table,并詳細探討其原理及實現過程
    2024-08-08

最新評論

武定县| 新安县| 呼图壁县| 伊通| 阿图什市| 天柱县| 神农架林区| 湘西| 龙游县| 综艺| 林州市| 靖边县| 岳西县| 富平县| 昌图县| 广饶县| 岳阳县| 周至县| 二手房| 静海县| 安徽省| 庐江县| 濮阳县| 新田县| 高陵县| 丰宁| 南投市| 武强县| 虹口区| 杨浦区| 东乌珠穆沁旗| 新津县| 绵竹市| 普宁市| 通山县| 垦利县| 宝清县| 多伦县| 搜索| 离岛区| 文昌市|