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

【Vue】生命周期一文詳解

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

目錄

前言

生命周期

鉤子函數(shù)使用方法

?編輯

周期-----創(chuàng)建階段

創(chuàng)建階段做了些什么事

該階段可以干什么

周期----掛載階段

掛載階段做了什么事

該階段適合干什么

周期----更新階段

更新階段做了什么事

該階段適合做什么

周期----銷毀階段

銷毀階段做了什么事

該階段適合做什么


前言

Vue生命周期分為四個周期:創(chuàng)建、掛載、更新、銷毀

生命周期

每個周期對應(yīng)兩個函數(shù),對應(yīng)的函數(shù)又叫鉤子函數(shù)

創(chuàng)建:

beforeCreate()????????------? ? ? ? 創(chuàng)建前

created()? ? ? ? ? ? ? ? ------? ? ? ? 創(chuàng)建后

掛載:

beforeMount()????????------?? ? ? 掛載前

mounted()? ? ? ? ? ? ? ?------? ? ? ? 掛載后

更新:

beforeUpdate()? ? ? ? ------? ? ? ? 更新前

updated()? ? ? ? ? ? ? ? -----? ? ? ? 更新后

銷毀:

beforeDestroy()? ? ? ? -------? ? ? ? 銷毀前

destroyed()? ? ? ? ? ? ? ? ------? ? ? ? 銷毀后

鉤子函數(shù)使用方法

<div class="app">
        <h1>{{msg}}</h1>
        {{num}}
        <button @click="add()">+1</button>
        <button @click="destroy()">銷毀</button>
    </div>
    <script>
        const vm = new Vue({
            el:'.app',
            data:{
                msg:'Vue的生命周期',
                num:1
            },
            methods:{
                add(){
                     this.num++
                },
                destroy(){
                    this.$destroy()
                }
            },
            // 創(chuàng)建
            // 創(chuàng)建前
            beforeCreate(){
                console.log('beforeCreate');
            },
            // 創(chuàng)建后
            created(){
                console.log('Created');
            },
            // 掛載
            // 掛載前
            beforeMount(){
                console.log('beforeMount');               
            },
            // 掛載后
            mounted(){
                console.log('Mounted');
            },
            // 更新
            // 更新前
            beforeUpdate(){
                console.log('beforeUpdata');

            },
            // 更新后
            updated(){
                console.log('Updataed');

            },
            // 銷毀
            // 銷毀前
            beforeDestroy(){
                console.log('beforeDestory');

            },
            // 銷毀后
            destroyed(){
                console.log( 'Destoryed');

            }

        })
    </script>

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

更新數(shù)據(jù)

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

銷毀

調(diào)用該方法

this.$destroy()

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

周期-----創(chuàng)建階段

生成虛擬dom

該周期包含兩個鉤子函數(shù),創(chuàng)建前beforeCreate()和創(chuàng)建后Created()

所謂的創(chuàng)建不是指Vue實例的創(chuàng)建,而是指數(shù)據(jù)代理和數(shù)據(jù)監(jiān)測的創(chuàng)建,以此來分創(chuàng)建前和創(chuàng)建后

在創(chuàng)建前,是無法訪問data中的數(shù)據(jù)的,包括methods

例:

在原代碼的基礎(chǔ)上,訪問data中的num

?//創(chuàng)建前

beforeCreate(){

? ? ? ? ? ? ? ? console.log('beforeCreate',this.num);

? ? ? ? ? ? }

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

創(chuàng)建后是可以訪問的,包括methods

// 創(chuàng)建后

? ? ? ? ? ? created(){

? ? ? ? ? ? ? ? console.log('Created',this.num);

? ? ? ? ? ? }

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

創(chuàng)建階段做了些什么事

  1. 創(chuàng)建Vue實例vm
  2. 初始化事件對象和生命周期
  3. 調(diào)用beforeCreate()鉤子函數(shù)(此時還無法通過vm去訪問data中的屬性)
  4. 初始化數(shù)據(jù)代理和數(shù)據(jù)監(jiān)測
  5. 調(diào)用created()鉤子函數(shù)(此時數(shù)據(jù)代理和數(shù)據(jù)監(jiān)測已經(jīng)創(chuàng)建完畢,可以通過vm去訪問data中的屬性)
  6. 編譯模板語句生成虛擬dom(此時只是生成虛擬dom,頁面上還沒有渲染)

該階段可以干什么

  • beforeCreate():可以在此時加一些loading效果
  • created:結(jié)束loading效果,發(fā)送一些網(wǎng)絡(luò)請求,獲取數(shù)據(jù),也可以添加定時器

周期----掛載階段

生成真實dom

該階段包含兩個鉤子函數(shù),掛載前beforeMount()和掛載后mounted()

掛載前和掛載后中間存在一個真實dom的生成

而掛載前和創(chuàng)建后之間存在一個虛擬dom的生成

在掛載前,是無法修改頁面內(nèi)容的

// 掛載前

? ? ? ? ? ? beforeMount(){

? ? ? ? ? ? ? ? console.log('beforeMount');

? ? ? ? ? ? ? ? document.querySelector('h1').innerHTML='掛載'

? ? ? ? ? ? }

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

掛載后是可以修改的

// 掛載后

? ? ? ? ? ? mounted(){

? ? ? ? ? ? ? ? console.log('Mounted');

? ? ? ? ? ? ? ? document.querySelector('h1').innerHTML='掛載'

? ? ? ? ? ? }

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

掛載階段做了什么事

  1. 調(diào)用beforeMount()鉤子函數(shù)(此時頁面還未渲染,真實dom還沒生成)
  2. 給vm追加$el屬性,用它來代替"el",$el代表了真實的dom元素(此時真實dom生成,頁面渲染完成)
  3. 調(diào)用mounted()鉤子函數(shù)

該階段適合干什么

mounted:可以操作頁面的dom元素了

周期----更新階段

該階段只有在data變化后才會觸發(fā),進行重新渲染

該周期包含兩個鉤子函數(shù),更新前beforeUpdate()和更新后updated()

這里的更新前是指data中的數(shù)據(jù)更新了,但是頁面還沒重新渲染前

更新前

使用斷點debugger

?// 更新前

? ? ? ? ? ? beforeUpdate(){

? ? ? ? ? ? ? ? console.log('beforeUpdata');

? ? ? ? ? ? ? ? debugger

? ? ? ? ? ? }

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

更新后

解開斷點

//更新后

?updated(){

? ? ? ? ? ? ? ? console.log('Updataed');

? ? ? ? ? ? }

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

其中diff算法就是在更新前和更新后之間進行的,虛擬dom進行對比,生成真實dom渲染到頁面

更新階段做了什么事

  1. data發(fā)生改變(這是該階段開始的標志)
  2. 調(diào)用beforeUpdate()鉤子函數(shù)(此時只是內(nèi)存中的data數(shù)據(jù)發(fā)生變化,頁面還沒更新)
  3. 虛擬dom重新渲染和修補
  4. 調(diào)用updated()鉤子函數(shù)(此時頁面已更新)

該階段適合做什么

  • beforeUpdate:適合在更新之前訪問現(xiàn)有的dom,例,手動清除已添加的事件監(jiān)聽器
  • updated:頁面更新后,如果想對數(shù)據(jù)作統(tǒng)一處理,可以在這里完成

周期----銷毀階段

卸載監(jiān)視器,子組件,事件監(jiān)聽器

該階段包含兩個鉤子函數(shù),銷毀前beforeDestroy()和銷毀后Destroy()

與其說是銷毀其實是卸載,卸載Vue實例上面的所有

該階段只有調(diào)用該方法才能進入

vm.$destroy()

銷毀前

打印vue實例對象,查看監(jiān)視器,銷毀前,監(jiān)視器還是激活狀態(tài)

?// 銷毀前

? ? ? ? ? ? beforeDestroy(){

? ? ? ? ? ? ? ? console.log('beforeDestory');

? ? ? ? ? ? ? ? console.log(this);

? ? ? ? ? ? ? ? debugger

? ? ? ? ? ? }

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

雖然是激活狀態(tài),但是還是無法監(jiān)聽,我們在原有的代碼基礎(chǔ)上監(jiān)聽data中的num屬性

 watch:{
                num(){
                    console.log('監(jiān)聽一次');
                }
            },

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

當num屬性值變化時,成功監(jiān)聽到了,當我們執(zhí)行銷毀時,由上得知,監(jiān)聽器還是在激活狀態(tài)

但是以及無法監(jiān)聽了

銷毀后

?// 銷毀后

? ? ? ? ? ? destroyed(){

? ? ? ? ? ? ? ? console.log( 'Destoryed');

? ? ? ? ? ? ? ? console.log(this);

? ? ? ? ? ? }

【Vue】生命周期一文詳解,vue,vue.js,前端,javascript

watcher激活狀態(tài)已經(jīng)成了false

銷毀階段做了什么事

  1. 調(diào)用vm.$destroy()(進入銷毀階段)
  2. 調(diào)用beforeDestroy()鉤子函數(shù)(此時Vue實例還在,雖然vm上的監(jiān)視器、子組件、事件監(jiān)聽器還在,但是無法使用了,此時修改data也不會重新渲染頁面了)
  3. 卸載子組件和監(jiān)視器,解綁事件監(jiān)聽器
  4. 調(diào)用destroyed()鉤子函數(shù)(此時Vue實例還在,只是空間還未釋放,銷毀后指的是vm對象身上所有的東西已經(jīng)解綁完成)

該階段適合做什么

beforeDestroy:適合作銷毀前的準備工作文章來源地址http://www.zghlxwxcb.cn/news/detail-752950.html

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

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Vue.js生命周期及其應(yīng)用示例

    Vue.js是一種流行的前端JavaScript框架,可以讓開發(fā)人員輕松構(gòu)建動態(tài)用戶界面。Vue.js的一個關(guān)鍵特性是其生命周期系統(tǒng),它允許開發(fā)人員在組件的不同階段執(zhí)行代碼。在本文中,我們將探討Vue.js生命周期的不同階段以及如何在這些階段執(zhí)行代碼,并舉例說明。 Vue.js生命周期分

    2024年02月08日
    瀏覽(20)
  • 【前端】重學(xué)vue,vue生命周期基礎(chǔ)知識了解一下

    【前端】重學(xué)vue,vue生命周期基礎(chǔ)知識了解一下

    上一篇有寫到vue的node環(huán)境的安裝,具體的地址node安裝,可點過去看下安裝步驟,目前去node官網(wǎng)下載默認是最新版本的18.15.0版本。這個版本可能有些高,可以選擇跟目前項目匹配的版本下載安裝即可。 如果項目啟動遇到項目啟動不成功,如下圖 這樣肯定是node版本的問題,解

    2023年04月09日
    瀏覽(26)
  • 深入探究Vue.js生命周期及其應(yīng)用場景

    深入探究Vue.js生命周期及其應(yīng)用場景

    當談到Vue.js的生命周期時,我們指的是組件在創(chuàng)建、更新和銷毀過程中發(fā)生的一系列事件。了解Vue的生命周期對于開發(fā)人員來說是至關(guān)重要的,因為它們提供了一個機會來執(zhí)行特定任務(wù),并在不同的階段處理組件。 Vue的生命周期可以分為八個不同的階段:創(chuàng)建前、創(chuàng)建后、掛

    2024年02月06日
    瀏覽(30)
  • 【前端】Vue生命周期函數(shù)(詳細講解+中文圖解)

    【前端】Vue生命周期函數(shù)(詳細講解+中文圖解)

    生命周期: 從vue實例產(chǎn)生開始到vue實例被銷魂這段時間所經(jīng)歷的過程 vue實例的 創(chuàng)建和銷毀過程 好比 人的一生從出現(xiàn)到死亡過程 。在其中一些 重大經(jīng)歷 ,也就是特殊時間點,我們可以做什么事情 在vue的一生中,從vue組件創(chuàng)建開始一直到其被銷毀時的時間段中,也被建立了

    2024年02月13日
    瀏覽(35)
  • Vue生命周期函數(shù)(詳解)

    Vue生命周期函數(shù)(詳解)

    目錄 ?生命周期圖 生命周期函數(shù) beforeCreate和created的區(qū)別 beforeCreate創(chuàng)建前應(yīng)用場景 ?created創(chuàng)建后應(yīng)用場景 beforeMount和mounted的區(qū)別 ?beforeMount掛載前應(yīng)用場景 ?mounted掛載后應(yīng)用場景 ?beforeUpdate和updated的區(qū)別 ?beforeUpdate更新前應(yīng)用場景 ?updated更新后應(yīng)用場景 ?beforeDestroy和des

    2024年02月13日
    瀏覽(24)
  • Vue生命周期詳解學(xué)習筆記

    Vue生命周期詳解學(xué)習筆記

    生命周期又名生命周期回調(diào)函數(shù),生命周期函數(shù),生命周期鉤子。 生命周期是Vue在關(guān)鍵時刻幫我們調(diào)用的一些特殊名稱的函數(shù)。 生命周期函數(shù)的名字不可更改,但函數(shù)的具體內(nèi)容是程序員根據(jù)需求編寫的。 生命周期中的this指向vm或組件實例對象。 鉤子函數(shù)用來描述Vue實例從

    2024年02月16日
    瀏覽(25)
  • Vue的生命周期的詳解

    Vue的生命周期的詳解

    Vue的生命周期是每個使用Vue框架的前端人員都需要掌握的知識,以此作為記錄。 Vue的生命周期就是vue實例從創(chuàng)建到銷毀的全過程,也就是new Vue() 開始就是vue生命周期的開始。Vue 實例有?個完整的?命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模版、掛載Dom - 渲染、更新

    2024年02月02日
    瀏覽(24)
  • 前端頁面點擊刷新-觸發(fā)vue生命周期加載最新數(shù)據(jù)

    需求背景:layout布局,頁面頭部通過定時器獲取后端消息的偽消息通知功能,在點擊消息時獲取所有消息總數(shù)并且刷新頁面,以便觸發(fā)vue的生命周期重新獲取所有消息,消息展示在content中。 ?要觸發(fā)頁面刷新,可以使用vue路由的router.push方法,添加一個動態(tài)的query參數(shù),可以

    2024年02月21日
    瀏覽(23)
  • Vue--》詳解Vue組件生命周期的三個階段

    Vue--》詳解Vue組件生命周期的三個階段

    目錄 組件生命周期 創(chuàng)建階段 beforeCreate階段: created階段: beforeMount階段

    2024年01月22日
    瀏覽(40)
  • Vue2的生命周期(詳解)

    Vue2的生命周期(詳解)

    Vue實例的生命周期: 從創(chuàng)建到銷毀的整個過程 Vue框架內(nèi)置函數(shù),隨著組件的生命周期階段,自動執(zhí)行 作用:特定的時間點,執(zhí)行特定的操作 分類:四大階段 八大方法 new Vue() – Vue實例化(組件也是一個小的Vue實例) Init Events Lifecycle – 初始化事件和生命周期函數(shù) beforeCreate – 生命周期

    2024年02月03日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包