国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue2的生命周期(詳解)

這篇具有很好參考價值的文章主要介紹了Vue2的生命周期(詳解)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、生命周期的概念

Vue實例的生命周期: 從創(chuàng)建到銷毀的整個過程

vue2生命周期,# 第一章 webpack+vue基礎,vue.js,javascript,前端

二、鉤子函數(shù)

Vue框架內(nèi)置函數(shù),隨著組件的生命周期階段,自動執(zhí)行

  • 作用:特定的時間點,執(zhí)行特定的操作
  • 分類:四大階段 八大方法
    vue2生命周期,# 第一章 webpack+vue基礎,vue.js,javascript,前端
    vue2生命周期,# 第一章 webpack+vue基礎,vue.js,javascript,前端

三、Vue2的生命周期

3.1 初始化階段

  1. new Vue() – Vue實例化(組件也是一個小的Vue實例)
  2. Init Events & Lifecycle – 初始化事件和生命周期函數(shù)
  3. beforeCreate – 生命周期鉤子函數(shù)被執(zhí)行(data和methods初始化之前)
  4. Init injections&reactivity – Vue內(nèi)部添加data和methods等
  5. created – 生命周期鉤子函數(shù)被執(zhí)行, 實例創(chuàng)建(不能獲取真實的DOM)
  6. 接下來是編譯模板階段 –開始分析
  7. Has el option? – 是否有el選項 – 檢查要掛到哪里
    沒有. 調(diào)用$mount()方法
    有, 繼續(xù)檢查template選項
    vue2生命周期,# 第一章 webpack+vue基礎,vue.js,javascript,前端
<template>
    <div>
        <p>學習生命周期 - 看控制臺的打印</p>
        <p id="mp">{{ msg }}</p>
    </div>
</template>

<script>
export default {
    //第一階段 初始化
    //new Vue以后,vue內(nèi)部給實例對象添加了一些屬性和方法,data和methods初始化之前
    beforeCreate() {
        console.log('1.beforeCreate--執(zhí)行')
        console.log('msg', this.msg); //undefined
    },
    //data和methods初始化以后  不能獲取真實的DOM
    //場景:網(wǎng)絡請求,注冊全局事件,綁定頁面滾動事件
    created() {
        console.log('2.created--執(zhí)行');
        console.log('msg', this.msg); //hello word
    },
    data() {
        return {
            msg: 'hello word',
        }
    }
}
</script>

3.2 掛載階段

  1. template選項檢查
    有 - 編譯template返回render渲染函數(shù)
    無 – 編譯el選項對應標簽作為template(要渲染的模板)
  2. 虛擬DOM掛載成真實DOM之前
  3. beforeMount – 生命周期鉤子函數(shù)被執(zhí)行
  4. Create … – 把虛擬DOM和渲染的數(shù)據(jù)一并掛到真實DOM上
  5. 真實DOM掛載完畢
  6. mounted – 生命周期鉤子函數(shù)被執(zhí)行
    vue2生命周期,# 第一章 webpack+vue基礎,vue.js,javascript,前端
<template>
    <div>
        <p>學習生命周期 - 看控制臺的打印</p>
        <p id="mp">{{ msg }}</p>
        <ul id="uls">
            <li v-for="item in arr">{{ item }}</li>
        </ul>
    </div>
</template>

<script>
export default {
    //第一階段 初始化
    //new Vue以后,vue內(nèi)部給實例對象添加了一些屬性和方法,data和methods初始化之前
    beforeCreate() {
        console.log('1.beforeCreate--執(zhí)行')
        console.log('msg', this.msg); //undefined
    },
    //data和methods初始化以后  不能獲取真實的DOM
    //場景:網(wǎng)絡請求,注冊全局事件,綁定頁面滾動事件
    created() {
        console.log('2.created--執(zhí)行');
        console.log('msg', this.msg); //hello word
    },

    //第二階段 掛載階段
    //真實DOM掛載之前
    //場景 預處理data,不會觸發(fā)updated鉤子函數(shù)
    beforeMount() {
        console.log('3.beforeMount--執(zhí)行');
        console.log(document.querySelector('#mp')) //null
        this.msg = '重新改變了'
    },
    //真實DOM掛載之后
    //獲取掛載后的真實DOM
    mounted() {
        console.log('4.mounted--執(zhí)行');
        console.log(document.querySelector('#mp')) //p

    },
    data() {
        return {
            msg: 'hello word',
            arr: [2, 6, 4, 2, 1],
        }
    }
}
</script>

3.3 更新階段

  1. 當data里數(shù)據(jù)改變, 更新DOM之前
  2. beforeUpdate – 生命周期鉤子函數(shù)被執(zhí)行
  3. Virtual DOM…… – 虛擬DOM重新渲染, 打補丁到真實DOM
  4. updated – 生命周期鉤子函數(shù)被執(zhí)行
  5. 當有data數(shù)據(jù)改變 – 重復這個循環(huán)
    vue2生命周期,# 第一章 webpack+vue基礎,vue.js,javascript,前端
<template>
    <div>
        <p>學習生命周期 - 看控制臺的打印</p>
        <p id="mp">{{ msg }}</p>
        <ul id="uls">
            <li v-for="item in arr">{{ item }}</li>
        </ul>
        <button @click="arr.push(1000)">往數(shù)組加值</button>
    </div>
</template>

<script>
export default {
    //第一階段 初始化
    //new Vue以后,vue內(nèi)部給實例對象添加了一些屬性和方法,data和methods初始化之前
    beforeCreate() {
        console.log('1.beforeCreate--執(zhí)行')
        console.log('msg', this.msg); //undefined
    },
    //data和methods初始化以后  不能獲取真實的DOM
    //場景:網(wǎng)絡請求,注冊全局事件,綁定頁面滾動事件
    created() {
        console.log('2.created--執(zhí)行');
        console.log('msg', this.msg); //hello word
    },

    //第二階段 掛載階段
    //真實DOM掛載之前
    //場景 預處理data,不會觸發(fā)updated鉤子函數(shù)
    beforeMount() {
        console.log('3.beforeMount--執(zhí)行');
        console.log(document.querySelector('#mp')) //null
        this.msg = '重新改變了'
    },
    //真實DOM掛載之后
    //獲取掛載后的真實DOM
    mounted() {
        console.log('4.mounted--執(zhí)行');
        console.log(document.querySelector('#mp')) //p
    },
    
    //第三階段 更新階段
    //更新之前
    beforeUpdate() {
        console.log('beforeUpdate--執(zhí)行');
        console.log(document.querySelectorAll('#uls>li'))
        //點擊button按鈕  往數(shù)組追加一條數(shù)據(jù)
        console.log(document.querySelectorAll('#uls>li')[5]) //undefined
    },
    //更新之后
    // 場景:獲取更新后的真實DOM
    updated() {
        console.log('updated--執(zhí)行了');
        console.log(document.querySelectorAll('#uls>li')[5]) //li
    },
    data() {
        return {
            msg: 'hello word',
            arr: [2, 6, 4, 2, 1],
        }
    }
}
</script>

<style scoped></style>

3.4 銷毀階段

  1. 當$destroy()被調(diào)用 – 比如組件DOM被移除(例v-if)
  2. beforeDestroy – 生命周期鉤子函數(shù)被執(zhí)行
  3. 拆卸數(shù)據(jù)監(jiān)視器、子組件和事件偵聽器
  4. 實例銷毀后, 最后觸發(fā)一個鉤子函數(shù)
  5. destroyed – 生命周期鉤子函數(shù)被執(zhí)行
    vue2生命周期,# 第一章 webpack+vue基礎,vue.js,javascript,前端

父組件

<div>
    <h1>1.生命周期</h1>
    <Lifes v-if="isShow"></Lifes>
    <button @click="isShow = false">銷毀組件</button>
  </div>

子組件文章來源地址http://www.zghlxwxcb.cn/news/detail-771197.html

<template>
    <div>
        <p>學習生命周期 - 看控制臺的打印</p>
        <p id="mp">{{ msg }}</p>
        <ul id="uls">
            <li v-for="item in arr">{{ item }}</li>
        </ul>
    </div>
</template>

<script>
export default {
 	created() {
 	//創(chuàng)建一個定時器
        this.timer = setInterval(() => {
            console.log('定時器');
        }, 1000)
    },

    //第四階段 銷毀階段
    //前提:v-if="false"  銷毀Vue實例
    //場景:移除全局的事件 移除當前組件的計時器  定時器 eventBus移除事件$off方法
    beforeDestroy() {
        console.log('beforeDestroy--執(zhí)行');
        clearInterval(this.timer) //銷毀定時器
    },

    destroyed() {
        console.log('destroy--執(zhí)行');
    },
    data() {
        return {
            msg: 'hello word',
            timer: null,//保存計時器
        }
    }
}
</script>

<style scoped></style>

到了這里,關于Vue2的生命周期(詳解)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • vue2 生命周期,工程化開發(fā)入門

    vue2 生命周期,工程化開發(fā)入門

    1.生命周期 生命周期介紹 生命周期的四個階段 生命周期鉤子 聲明周期案例 2.工程化開發(fā)入門 工程化開發(fā)和腳手架 項目運行流程 組件化 組件注冊 思考:什么時候可以發(fā)送初始化渲染請求?(越早越好)什么時候可以開始操作dom?(至少dom得渲染出來) Vue生命周期:就是一

    2024年02月11日
    瀏覽(91)
  • Vue2和Vue3生命周期映射關系及異同

    Vue2和Vue3生命周期映射關系及異同

    beforeCreate - 使用 setup() created - 使用 use setup() beforeMount -onBeforeMount mounted - onMounted beforeUpdate - onBeforeUpdate updated - onUpdated beforeDestroy- onBeforeUnmount destroyed -onUnmounted activated - onActivated deactivated - onDeactivated errorCaptured - onErrorCaptured beforeCreate - 使用 setup() 函數(shù)替代 Vue 2 中的 beforeCrea

    2024年01月24日
    瀏覽(26)
  • Vue2 的@hook 、 hook:  與生命周期

    Vue2 的@hook 、 hook: 與生命周期

    優(yōu)點:簡單易上手 缺點:此種方法子組件必須是自己編寫的組件,若引用第三方庫這種方式則不可行 官方文檔并沒有太多相關解釋,只在處理邊界情況 #程序化的事件偵聽器— Vue.js (vuejs.org)里有出現(xiàn)。 子組件無需相關處理就能實現(xiàn)偵聽,這塊的實現(xiàn)原理可以從源碼里探究部

    2024年02月05日
    瀏覽(19)
  • Vue2(生命周期,列表排序,計算屬性和監(jiān)聽器)

    Vue2(生命周期,列表排序,計算屬性和監(jiān)聽器)

    前言 上一章博客我們講解了Vue基礎 這一章我們來講Vue生命周期,列表過濾,計算屬性和監(jiān)聽器 一,生命周期 通常也叫生命周期回調(diào)函數(shù)、生命周期函數(shù)、生命周期鉤子 vue初始化時在不同的階段調(diào)用的不同函數(shù) 生命周期函數(shù)的 this 指向為vue實例,名字不能更改 1.1,生命周期函

    2024年02月13日
    瀏覽(49)
  • 從Vue2到Vue3【一】——Composition API(第一章)

    內(nèi)容 鏈接 從Vue2到Vue3【零】 Vue3簡介 從Vue2到Vue3【一】 Composition API(第一章) 從Vue2到Vue3【二】 Composition API(第二章) 從Vue2到Vue3【三】 Composition API(第三章) 從Vue2到Vue3【四】 Composition API(第四章) Vue3作為Vue.js框架的最新版本,引入了許多令人激動的新特性和改進。其

    2024年02月16日
    瀏覽(21)
  • 【Vue2.0源碼學習】生命周期篇-初始化階段(initState)

    【Vue2.0源碼學習】生命周期篇-初始化階段(initState)

    本篇文章介紹生命周期初始化階段所調(diào)用的第五個初始化函數(shù)—— initState 。 從函數(shù)名字上來看,這個函數(shù)是用來初始化實例狀態(tài)的,那么什么是實例的狀態(tài)呢?在前面文章中我們略有提及,在我們?nèi)粘i_發(fā)中,在 Vue 組件中會寫一些如 props 、 data 、 methods 、 computed 、 watc

    2024年02月09日
    瀏覽(26)
  • 【Vue2.0源碼學習】生命周期篇-初始化階段(initInjections)

    本篇文章介紹生命周期初始化階段所調(diào)用的第四個初始化函數(shù)—— initInjections 。從函數(shù)名字上來看,該函數(shù)是用來初始化實例中的 inject 選項的。說到 inject 選項,那必然離不開 provide 選項,這兩個選項都是成對出現(xiàn)的,它們的作用是:允許一個祖先組件向其所有子孫后代注

    2024年02月09日
    瀏覽(16)
  • Vue2技能樹(3)-聲明式渲染、指令大全、生命周期函數(shù)

    ?? 點贊,你的認可是我創(chuàng)作的動力! ?? 收藏,你的青睞是我努力的方向! ?? 評論,你的意見是我進步的財富! Vue2技能樹(1)-介紹、導入使用、響應式數(shù)據(jù)綁定、組件化開發(fā) vue2技能樹(2)-模板語法、vue的工具鏈、漸進式框架 Vue2技能樹(3)-聲明式渲染、指令大全、生命周

    2024年02月07日
    瀏覽(27)
  • Vue2-收集表單數(shù)據(jù)、過濾器、內(nèi)置指令與自定義指令、Vue生命周期

    Vue2-收集表單數(shù)據(jù)、過濾器、內(nèi)置指令與自定義指令、Vue生命周期

    ??:我徒越萬重山 千帆過 萬木自逢春 更多Vue知識請點擊——Vue.js 1、不同標簽的value屬性 若: input type=\\\"text\\\"/ 普通輸入框,則v-model收集的是value值,用戶輸入的就是value值。 若: input type=\\\"radio\\\"/ 單選框,則v-model收集的是value值,且要給標簽配置value值。 若: input type=\\\"checkb

    2024年02月13日
    瀏覽(55)
  • #Uniapp:uni-app中vue2生命周期--11個

    uni-app中vue2生命周期 生命周期鉤子 描述 H5 App端 小程序 說明 beforeCreate 在實例初始化之后被調(diào)用 詳情 √ √ √ created 在實例創(chuàng)建完成后被立即調(diào)用 詳情 √ √ √ beforeMount 在掛載開始之前被調(diào)用 詳情 √ √ √ mounted 掛載到實例上去之后調(diào)用 詳情 注意:此處并不能確定子組件

    2024年02月02日
    瀏覽(67)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包