在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Vue3.2 語(yǔ)法基礎(chǔ)詳解

    前言

    官網(wǎng)地址:https://staging-cn.vuejs.org/

    vue最新版分為兩個(gè)版本: Vue3.0(20年9月18日) Vue 3.2 (21年8月10日)

    #Vue 3.2 +Vite+volar

    Vue3 框架做了大量的性能優(yōu)化,包括虛擬 DOM,編譯模板、代理的新數(shù)據(jù)監(jiān)聽(tīng),體積更小的打包文件等。

    新的組合式 API (composition-api),更適合大型項(xiàng)目的構(gòu)建,去除繁瑣的 this 操作;

    由于是基于 TypeScript 編寫,對(duì) TypeScript 原生支持更好,更強(qiáng)大的智能類型推導(dǎo)功能;

    生命周期的一些改變,vue2 中的 beforeCreate 和 created 被一個(gè)新增的 setup 生命周期函數(shù)代替;

    一些常見(jiàn) API 如 v-model 的變化,支持對(duì)一個(gè)組件同時(shí)進(jìn)行多個(gè) v-model 的數(shù)據(jù)綁定。

    vscode 的插件 vetur 對(duì)vue3 的composition API語(yǔ)法支持度非常弱,所以開(kāi)發(fā)vue3項(xiàng)目需要將vetur禁用 更換另一個(gè)插件

    開(kāi)發(fā)vue3安裝并使用: volar 插件

    #1.項(xiàng)目創(chuàng)建

    Vite 官網(wǎng):https://cn.vitejs.dev/

    yarn create vite my-vue-app –template vue

    #2.SFC 單文件組件

    html 部分變化不大

    vue2的 template 中只能有一個(gè)子節(jié)點(diǎn),vue3的 template 中可以寫多個(gè)子節(jié)點(diǎn)

    js 部分內(nèi)置ts,但是vite創(chuàng)建的項(xiàng)目沒(méi)有開(kāi)啟 , .box{ width: 100px; height: 100px; background: v-bind(color);}

    #2. setup語(yǔ)法糖

    起初 Vue3.0 暴露變量必須 return 出來(lái),template中才能使用; 這樣會(huì)導(dǎo)致在頁(yè)面上變量會(huì)出現(xiàn)很多次。

    vue3.2只需在script標(biāo)簽中添加setup,可以幫助我們解決這個(gè)問(wèn)題。

    1.組件只需引入不用注冊(cè),屬性和方法也不用返回, 也不用寫setup函數(shù),也不用寫export default , 甚至是自定義指令也可以在我們的template中自動(dòng)獲得。

    #3.data 定義

    #3.1 直接定義 無(wú)響應(yīng)式

    {{name}}

    #3.2 ref 定義基本數(shù)據(jù)類型 有響應(yīng)式

    {{name}}

    修改數(shù)據(jù)

    #3.3 reactvie 定義引用數(shù)據(jù)類型 有響應(yīng)式

    {{user.name}}

    新增屬性

    #4.methods 方法定義

    {{user.age}}

    年齡+

    #5.computed 計(jì)算屬性

    #6.watch 使用

    watch(監(jiān)聽(tīng)數(shù)據(jù)源,執(zhí)行函數(shù),[配置參數(shù)]) //配置參數(shù): 立即執(zhí)行 深度監(jiān)聽(tīng){immediate: true, deep: true }

    #6.1 監(jiān)聽(tīng)基本數(shù)據(jù)類型單一數(shù)據(jù)源

    #6.2 監(jiān)聽(tīng)引用數(shù)據(jù)類型單一數(shù)據(jù)源

    #6.3 監(jiān)聽(tīng)引用數(shù)據(jù)類型 多數(shù)據(jù)源[深度監(jiān)聽(tīng)]

    添加隨機(jī)數(shù) {{ item }}

    #7.生命周期

    vue2

    vue3.0

    vue3.2

    備注

    beforeCreate

    setup

    組件創(chuàng)建之前 可以獲取頂級(jí)實(shí)例對(duì)象

    created

    setup

    組件創(chuàng)建完成,可以獲取變量

    beforeMount

    onBeforeMount

    掛載前,VNdom創(chuàng)建完成,真實(shí)dom未渲染

    mounted

    onMounted

    掛載完成,真實(shí)dom創(chuàng)建完成,可以獲取dom

    beforeUpdate

    onBeforeUpdate

    dom更新前觸發(fā)

    updated

    onUpdated

    dom更新完成觸發(fā)

    beforedestroy,destroyed

    beforeUnmount

    onBeforeUnmount

    組件卸載后觸發(fā) 所有的掛載的數(shù)據(jù) 子組件全部卸載后觸發(fā)

    errorCaptured

    onErrorCaptured

    在捕獲一個(gè)來(lái)自后代組件的錯(cuò)誤時(shí)被調(diào)用

    renderTracked

    onRenderTracked

    跟蹤虛擬 DOM 重新渲染時(shí)調(diào)

    renderTriggered

    onRenderTriggered

    當(dāng)虛擬 DOM 重新渲染被觸發(fā)時(shí)調(diào)用

    activated

    activated

    onActivated

    緩存組件激活時(shí)調(diào)用

    deactivated

    deactivated

    onDeactivated

    緩存組件失活時(shí)調(diào)用

    #8.組件使用

    • 創(chuàng)建 src/components/Son.vue
    • App.vue中導(dǎo)入并使用該組件
    • vue3.2 中當(dāng)我們導(dǎo)入子組件時(shí),setup語(yǔ)法糖會(huì)自動(dòng)去注冊(cè)該組件,所以注冊(cè)語(yǔ)句不用寫了。

    #9.組件通信

    #9.1 父?jìng)髯?defineProps

    • 父組件
    • 子組件

    #9.2 子傳父 defineEmits

    • 子組件

    傳遞數(shù)據(jù)

    • 父組件
    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年8月9日 12:09
    下一篇 2022年8月9日 12:09

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息