前言:
Vue3對比Vue2版本,它在性能、功能、易用性和可維護性方面都有顯著的提升和改進。
性能優化:模板編譯器的優化、對Proxy的支持以及使用了更加高效的Virtual DOM算法等。這使得Vue3的打包大小減少了41%,初次渲染提速55%,更新渲染提速133%,內存減少54%,比Vue2更快將近兩倍。
源碼升級:Vue3使用Proxy代替defineProperty實現響應式,重寫了虛擬DOM的實現和采用了Tree-Shaking技術,從而幫助減小了包的大小。
更好的TypeScript支持:Vue3提供了更好的TypeScript支持,包括類型定義文件,以幫助開發者在編碼過程中更好地進行類型檢查。
新的API和特性:Vue3引入了Composition API(組合式API),這是一種新的API風格,使開發者更容易組織和重用組件邏輯。此外,Vue3還提供了新的內置組件,如Fragment、Teleport和Suspense,以及新的生命周期鉤子、data選項應始終被聲明為一個函數、移除keyCode支持作為v-on的修飾符等。
一. Vue3創建項目主要有兩種方式如下,(VUe2一般使用腳手架創建項目)
1.1 使用Vue CLI創建項目:(不推薦)
- 首先,確保你的@vue/cli版本在4.5.0以上。你可以通過運行vue --version來檢查版本。如果版本過低,可以通過運行npm install -g @vue/cli來更新Vue CLI。
- 使用vue create 項目名稱命令來創建一個新的Vue 3項目。例如,vue create my-vue3-app。
- 在創建項目的過程中,你將看到一個選項列表,其中包括一些預設的配置選項,如Babel、Router、Vuex、CSS預處理器和Lint/Formatter等。根據你的需求選擇這些選項。
- 創建項目后,進入項目目錄并運行npm run serve來啟動你的Vue 3應用。
1.2 使用Vite創建項目:(推薦)
- 首先,安裝Vite。你可以通過運行npm install -g create-vite-app來全局安裝Vite。
- 使用create-vite-app 項目名稱命令來創建一個新的Vue 3項目。例如,create-vite-app my-vue3-app。
- 進入項目目錄并運行npm install來安裝項目依賴。
- 最后,運行npm run dev來啟動你的Vue 3應用。
需要注意的是,Vite不基于webpack,因此它的構建速度更快(先啟動在加載解析或處理,反之webpack需要加載所有文件處理解析完畢后才啟動,所以啟動速度要慢),體積更小。但是,Vite目前僅支持Vue 3.x,不支持Vue 2.x,并且目前還不是很穩定,正在完善中。因此,在選擇使用哪種方式創建Vue 3項目時,你需要根據你的需求和實際情況來做出決定。
二、Vue2配置式api(選項式api)與 Vue3組合式api
vue2配置api(選項api)
默認data里面定義的屬性自帶響應式效果(數據代理和數據劫持),vue2的特點:屬性、方法、監聽器都各司其職,分工比較明確;這樣如果代碼量大導致需要滾動代碼看很累,不好維護;
vue3組合式api 【setup語法糖-ref和reactive】
* setup可作為一個函數方法,與vue2中的method、watch等同級定義,一起使用(注意:這屬于在vue2中使用vue3,不建議混合寫法,但是必須知道,萬一后期公司有前人代碼混合寫,我們便于維護修改;)這種使用的不便之處,作為方法里面定義的屬性或方法,需要最后return出去,外面才能使用,那么一旦單頁面業務邏輯稍微復雜,變量和方法要一個一個的返回很不方便,容易遺漏或不必要方法也放上去了;
*直接將setup放到一個新的script標簽上,這稱作Vue3setup的語法糖(語法糖-顧名思義就是將代碼可以簡便),在script標簽里面,仍舊使用和第一種里面一樣的方式定義屬性或方法,而最后不需要我們手動將其返回出去,這個動作語法糖幫我們做了,
在vue2中,我們說過data里面的數據,由數據代理和數據劫持實現響應式,而vue3中實現響應式,需要我們使用ref或reaction包裹需要的賦值,例如:let a=ref( 'zhong' ); let b=reaction({name:'zzw',age:'18'}); 說明:ref可以用于基本數據類型和對象數據類型(若用于對象類型,此時它的底層還是reaction幫忙做的) 、reaction只能用于對象數據類型(并且深層次的對象也能監聽對象的響應-|對象里嵌套多套對象|)