<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      vue2&vue3&小程序簡介

      Vue2、Vue3、小程序頁面生命周期詳解

      本篇將對比 Vue2、Vue3 以及小程序頁面/組件的生命周期,簡單梳理各自特點、差異、新增優化點。


      ?? Vue2 生命周期

      beforeCreate → created → beforeMount → mounted → beforeUpdate → updated → beforeDestroy → destroyed
      

      說明:

      生命周期鉤子 含義
      beforeCreate 實例初始化之前,數據未掛載
      created 實例創建完成,data 可訪問
      beforeMount 掛載前,$el 和模板已生成但未插入 DOM
      mounted 掛載完成,DOM 可訪問
      beforeUpdate 數據更新前觸發
      updated 數據更新后觸發(更新 DOM 后)
      beforeDestroy 實例銷毀前,可做清理工作
      destroyed 實例銷毀后

      示例:

      export default {
        data() {
          return { count: 0 }
        },
        created() {
          console.log('組件創建完成')
        },
        mounted() {
          console.log('DOM已掛載')
        }
      }
      

      ?? Vue3 生命周期

      Vue3 提供了與 Vue2 一致的生命周期概念,并新增組合式 API 的方式定義。

      組合式 API 寫法

      import { onMounted, onUpdated, onUnmounted } from 'vue';
      
      export default {
        setup() {
          onMounted(() => {
            console.log('Vue3 組件掛載')
          });
        }
      }
      

      Vue3 生命周期鉤子對比:

      Vue2 Vue3 Options API Vue3 Composition API
      beforeCreate beforeCreate setup() 中邏輯
      created created setup() 中邏輯
      beforeMount beforeMount onBeforeMount
      mounted mounted onMounted
      beforeUpdate beforeUpdate onBeforeUpdate
      updated updated onUpdated
      beforeDestroy beforeUnmount onBeforeUnmount
      destroyed unmounted onUnmounted

      Vue 3 新特性與優勢

      1. Composition API(組合式API)

        • 把零散的代碼邏輯按功能打包成「積木塊」,想用哪塊插哪塊,告別滿屏亂跳的 datamethods

        • 示例代碼

          <script setup>
          // 以前:data、methods、computed 散落各處
          // 現在:按功能聚合
          import { ref, computed } from 'vue'
          
          // 計數器邏輯打包成一個「積木塊」
          function useCounter() {
            const count = ref(0)
            const double = computed(() => count.value * 2)
            const increment = () => count.value++
            return { count, double, increment }
          }
          
          // 直接插到組件里用
          const { count, double, increment } = useCounter()
          </script>
          
      2. 性能暴擊(Proxy 取代 defineProperty)

        • Vue2 用「貼紙條」(Object.defineProperty)監聽數據,Vue3 改用「監控攝像頭」(Proxy),數組修改、對象新增屬性再也不用手動 $set

        • 示例代碼

          // Vue2:數組 push 需要特殊處理
          this.$set(this.list, index, newValue)
          
          // Vue3:直接莽,全自動監聽
          const list = reactive([1, 2, 3])
          list.push(4) // 觸發響應式更新
          
      3. 按需編譯 + Tree Shaking

        • 打包時只帶走真正用到的代碼,比如不用 v-model 就不打包相關邏輯,項目體積瘦身 30%+。
      4. 碎片化組件(Fragment + Teleport)

        • 組件終于能像普通 HTML 一樣寫多個根標簽(不用強行套 div),還能用 <Teleport> 把模態框「傳送」到 body 根部,避免 CSS 層級問題。

        • 示例代碼

          <template>
            <!-- 合法!多個根元素 -->
            <header>標題</header>
            <main>內容</main>
          
            <!-- 把彈窗傳送到 body 末尾 -->
            <Teleport to="body">
              <div class="modal">我是全局彈窗</div>
            </Teleport>
          </template>
          
      5. TypeScript 原生支持

        • 代碼提示精準到毛孔,類型檢查直接內置,再也不用和 Vue.extend 斗智斗勇。

        • 示例代碼

          interface User {
            id: number
            name: string
          }
          
          const user = ref<User>({ id: 1, name: '張三' }) // 類型安全!
          
      6. 其他實用武器庫

        • Suspense:異步組件加載時顯示 loading 狀態(類似 React)。
        • 自定義渲染器:用 Vue 語法開發小程序/Canvas 應用。
        • Vite 加持:秒級熱更新,告別 webpack 漫長等待。

      ?? Vue 組件相關生命周期

      生命周期 含義
      props 更新 Vue2 和 Vue3 均可監聽 props 變化(通過 watch)
      slot 渲染 在 mounted 后插槽內容可以訪問
      異步組件 Vue3 支持 defineAsyncComponent 封裝異步組件

      示例:異步組件

      import { defineAsyncComponent } from 'vue';
      
      const MyAsync = defineAsyncComponent(() => import('./MyComponent.vue'));
      

      ?? 小程序生命周期

      頁面生命周期

      onLoad → onShow → onReady → onHide → onUnload
      
      生命周期 含義
      onLoad 頁面加載,接受參數
      onShow 頁面顯示,類似 activated
      onReady 頁面初次渲染完成
      onHide 頁面隱藏
      onUnload 頁面卸載

      組件生命周期

      created → attached → ready → detached
      
      生命周期 含義
      created 組件實例剛創建
      attached 節點插入頁面 DOM
      ready 組件布局完成
      detached 節點從頁面移除

      示例:頁面

      Page({
        onLoad(query) {
          console.log('頁面加載', query);
        },
        onReady() {
          console.log('頁面初次渲染完成');
        }
      })
      

      示例:組件

      Component({
        lifetimes: {
          created() {
            console.log('組件創建');
          },
          ready() {
            console.log('組件渲染完成');
          }
        }
      })
      

      ? 總結對比

      平臺 生命周期粒度 特點
      Vue2 清晰但耦合 生命周期集中在 Options 中
      Vue3 更靈活 Composition API 更利于邏輯復用、類型支持更好
      小程序 分頁面/組件 生命周期更貼近原生環境,適合事件驅動模型

      適配建議:

      • 如果要構建大規模應用,Vue3 推薦使用組合式 API 搭配 TypeScript;
      • 小程序推薦封裝一層統一生命周期處理,方便復用;
      • Vue2 項目可以漸進遷移 Vue3,重構時可引入 Composition API。

      ?? 推薦工具:

      • Vue3 Composition API 官方指南
      • 小程序開發者工具調試生命周期
      • Vueuse 處理常見生命周期邏輯
      posted @ 2025-04-13 13:56  幼兒園技術家  閱讀(123)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产欧美一区二区好看电影| 欧美老少配性行为| 欧美激情一区二区久久久| 欧美精品亚洲精品日韩专| а∨天堂一区中文字幕| 成年人尤物视频在线观看| 尤物yw193无码点击进入 | 国产精品一在线观看| 欧美丰满熟妇xxxx性| 亚洲国产成人无码av在线播放| 亚洲第一香蕉视频啪啪爽| 国产精品日本一区二区不卡视频| 国产精品亚洲精品日韩已满十八小| av无码精品一区二区乱子| 好吊视频一区二区三区在线| 亚洲欧美中文日韩在线v日本| 国产一卡2卡三卡4卡免费网站| 国产成人精品性色av麻豆| 毛片tv网站无套内射tv网站| 国产91小视频在线观看| 中文字幕亚洲人妻一区| 久热这里只有精品6| 亚洲第一国产综合| 国产精品一线天在线播放| 97人妻天天爽夜夜爽二区| 久久精品国产99麻豆蜜月| 青青热在线精品视频免费观看| 欧美色欧美亚洲高清在线观看| 精品日韩亚洲av无码| 东京热大乱系列无码| 夜夜添无码试看一区二区三区| 中文字幕亚洲资源网久久| b站永久免费看片大全| 精品国产亚洲午夜精品a| 国语做受对白XXXXX在线| 日韩不卡在线观看视频不卡| 国产精品午夜福利合集| 裸体美女无遮挡免费网站| 国产成人欧美一区二区三区在线| 亚洲 日韩 在线精品| 国产喷水1区2区3区咪咪爱AV|