vue2和vue3的區別

創建項目

首先更新vue-cli到最新版本。

npm install-g@vue/cli# OR yarn global add @vue/clivue create hello-vue3# select vue 3 preset

項目變化

vue2.x和vue3.x目錄結構沒有什么變化,只是一些使用方法變了,而且默認是安裝了TypeScript。

vue2.x與vue3.x語法對比淺析

main.js

vue2.x使用import Vue from 'vue',然后使用new Vue()創建實例。vue3.x則是import {createApp} from 'vue',通過createApp()來創建實例了。

這就導致了很多的插件或UI組件庫不能使用,比如ElementUI、iView...

vue2.x與vue3.x語法對比淺析

router.js創建路由

vue3.x需要引入createRouter創建地址路由。createWebHashHistory對應之前的hashcreateWebHistory對應之前的history

vue2.x與vue3.x語法對比淺析

vuex狀態管理

vue3.x中狀態管理的創建方式變為了createStore。代碼結構更精簡合理。

vue2.x與vue3.x語法對比淺析

Composition API

這個是vue3.x變化最大的地方,vue2.x數據存放在data,方法在methods,通過this去調用。但是在vue3.x這些都沒有了,所有的代碼全部都在setup里面實現,你頁面需要哪些方法,就要在當前頁引入即可。

vue2.x與vue3.x語法對比淺析

生命周期

vue3.x的生命周期也發生了一些變化,大家可以看下面這張圖。

vue2.x與vue3.x語法對比淺析

在項目中具體的使用方法。

vue2.x與vue3.x語法對比淺析

使用介紹

setup

setup有兩個參數 props 和 context

props:接受父組件傳的值

context:vue3.x里面沒有this,提供了一個context上下文屬性,你可以通過這個屬性去獲取進行 一些 vue2.x 用this實現的操作

vue2.x與vue3.x語法對比淺析

ref聲明基礎數據類型

創建一個響應式的基礎類型,只能監聽number、String、boolean等簡單的類型,該屬性一旦發生更改,都會被檢測到。

<template>? <div>{{count}}</div>? ? ? ? ? ? // 1</template>import{ref}from"vue"setup(){constcount=ref(0)count.value++//必須要加.valuereturn{count//一定要return 出去}}

reactive聲明響應式數據對象

<template>? <div>{{count.name}}</div>? ? ? ? ? ? // 857</template>import{reactive}from"vue"setup(){constcount=reactive({name:'369'})count.name='857'return{count}}

computed計算屬性

computed 和vue2.x差不多,只是使用前要先引入。

vue2.x與vue3.x語法對比淺析

watchEffect監聽

通過ref或者reactive去創建多個響應式的值,當任何一個值發生改變的時候,立即觸發這個函數。

vue2.x與vue3.x語法對比淺析

watchEffect方法會返回一個stop handle停止監聽。

vue2.x與vue3.x語法對比淺析

router 路由

vue3.x的router和route屬性也有了很大的變化,在vue2.x中使用this.router路由跳轉,

this.route獲取當前頁面路由信息。

// 路由跳轉import{useRouter}from"vue-router";setup(){constrouter=useRouter()router.push('/path')}// 獲取當前頁面路由信息import{useRoute}from"vue-router";setup(){constroute=useRoute()console.log(route)//這里的route相當于vue2.x中的this.$route}

鏈接來自于:http://www.lxweimin.com/p/4e7ba9e93402

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1:vue2和vue3雙向數據綁定原理發生了改變 vue2的雙向數據綁定是利用ES5的一個APIObject.de...
    隨筆記呀閱讀 26,427評論 0 71
  • 前言 版本換代需要我們花更多的時間適應學習,但升級是為了更好,讓你的前端項目更快更好更緊跟前端時代。 vue2.0...
    鋒叔閱讀 52,770評論 0 22
  • Vue 3 的 Template 支持多個根標簽,Vue 2 不支持 Vue 3 有 createApp(),而 ...
    sweetBoy_9126閱讀 30,473評論 0 15
  • Vue3.0的優勢 性能比Vue2.x快1.2~2倍 按需編譯,體積比Vue2.x更小 組合API(類似React...
    強某某閱讀 1,559評論 0 5
  • 夜鶯2517閱讀 127,759評論 1 9