欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue組件與生命周期詳細(xì)講解

 更新時間:2022年10月17日 17:13:27   作者:愛思考的豬  
Vue的生命周期就是vue實例從創(chuàng)建到銷毀的全過程,也就是new Vue() 開始就是vue生命周期的開始。Vue 實例有?個完整的?命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模版、掛載Dom -> 渲染、更新 -> 渲染、卸載 等?系列過程,稱這是Vue的?命周期

寫在前面

Vue.js的核心就是以簡潔的模板語法將數(shù)據(jù)渲染進(jìn)Dom系統(tǒng)。vue實例在渲染成html的時候往往要經(jīng)過以下的步驟:

  • 讀取數(shù)據(jù)和方法,設(shè)置數(shù)據(jù)綁定和監(jiān)聽
  • 解析template
  • 將實例掛載到Dom,并將實例狀態(tài)和視圖綁定,在執(zhí)行這些步驟的時候,vue還提供了一些生命周期的方法,用來在不同的階段對代碼做增添和修改。

生命周期

  • beforeCreate

vue實例初始化,數(shù)據(jù)監(jiān)聽和方法屬性掛載之前調(diào)用

  • created

數(shù)據(jù)監(jiān)聽和方法屬性掛載之后調(diào)用,是最早可以獲取和操作數(shù)據(jù)及方法的數(shù)據(jù)

  • beforeMounted

template解析之后調(diào)用,這個時候?qū)嵗€沒掛載到dom上

  • mounted

replace el之后調(diào)用,實例已經(jīng)掛載到dom上,是最早可以操作dom的時候

  • beforeUpdate

組件中的數(shù)據(jù)發(fā)生變化的時候執(zhí)行,此時數(shù)據(jù)已經(jīng)和頁面保持同步,只是頁面還沒更新

  • updated

數(shù)據(jù)更新后,頁面也是最新的

  • beforeDestroy

實例銷毀之前調(diào)用,實例上的方法和屬性還可以調(diào)用

  • destroyed

實例已經(jīng)銷毀,實例上的東西已經(jīng)不可以使用

圖解

問: 什么時候可以操作dom?

outer html(直接渲染在根節(jié)點(diǎn)下面的)在beforcreate階段就可以操作,使用template渲染的要在mounted階段才可以操作

  <div id='app'>
    <span id='span1'> 直接渲染的文字 </span>
    <span id='span2'> {{message}} <span>
    <com id='span3'></com>
  </div>
  <script>
    function deepClone(obj){
      return obj && JSON.parse(JSON.stringify(obj));
    };
    </script>
<script>
  function test(stage) {
    var span1 = document.getElementById('span1');
    var span2 = document.getElementById('span2');
    var span3 = document.getElementById('span3');
    debugger;
  };
  Vue.component('com', {
    template: '<span>使用template渲染的文字</span>'
  });
  var vm = new Vue({
    el:'#app',
    data: {
      message: 'hello vue!'
    },
    beforeCreate() {
      test('beforeCreate');
    },
    created() {
      test('created');
    },
    beforeMount() {
      test('beforeMount');
    },
    mounted() {
      test('mounted');
    }
  });
</script>

beforeCreate階段、created階段、beforeMount階段

可以操作outer html但獲取不到data中的數(shù)據(jù),template這個時候還沒渲染,無法被獲取到

mounted階段

mounted階段頁面已經(jīng)渲染完畢,可以操作所有的dom

總結(jié)

  1. created階段將數(shù)據(jù)和事件注入,并完成了數(shù)據(jù)觀測,是最早可以獲取和使用data、method的時候
  2. beforeMount階段進(jìn)行template的解析和渲染
  3. mounted階段將實例注入dom,是最早可以操作dom的時候
  4. beforeMount在數(shù)據(jù)發(fā)生變化后執(zhí)行,數(shù)據(jù)已經(jīng)更新
  5. mounted階段在視圖更新后執(zhí)行,數(shù)據(jù)和頁面已經(jīng)同步
  6. beforDestroy在實例/組件銷毀之前執(zhí)行,還可以使用組件的方法和屬性
  7. destroyed 實例銷毀后執(zhí)行,不能再使用實例

組件的生命周期還有actived和deactived是keep-alive的專屬。

到此這篇關(guān)于Vue組件與生命周期詳細(xì)講解的文章就介紹到這了,更多相關(guān)Vue組件與生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue封裝通過API調(diào)用的組件的方法詳解

    Vue封裝通過API調(diào)用的組件的方法詳解

    在日常業(yè)務(wù)開發(fā)中我們會經(jīng)常封裝一些業(yè)務(wù)組件,下面這篇文章主要給大家介紹了關(guān)于Vue封裝通過API調(diào)用的組件的方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • vue3?emits事件使用示例詳解

    vue3?emits事件使用示例詳解

    這篇文章主要為大家介紹了vue3?emits事件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • webpack+vuex+axios 跨域請求數(shù)據(jù)的示例代碼

    webpack+vuex+axios 跨域請求數(shù)據(jù)的示例代碼

    本篇文章主要介紹了webpack+vuex+axios 跨域請求數(shù)據(jù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 解決vuex數(shù)據(jù)丟失問題

    解決vuex數(shù)據(jù)丟失問題

    本文主要介紹了解決vuex?數(shù)據(jù)丟失問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • vue-virtual-scroll-list虛擬組件實現(xiàn)思路詳解

    vue-virtual-scroll-list虛擬組件實現(xiàn)思路詳解

    這篇文章主要給大家介紹了關(guān)于vue-virtual-scroll-list虛擬組件實現(xiàn)思路的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-02-02
  • vue.js實現(xiàn)含搜索的多種復(fù)選框(附源碼)

    vue.js實現(xiàn)含搜索的多種復(fù)選框(附源碼)

    這篇文章主要給大家介紹了利用vue.js實現(xiàn)含搜索的多種復(fù)選框的相關(guān)資料,文中給出了簡單的介紹,但提供了完整的實例源碼供大家下載學(xué)習(xí),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • 詳談Vue.js框架下main.js,App.vue,page/index.vue之間的區(qū)別

    詳談Vue.js框架下main.js,App.vue,page/index.vue之間的區(qū)別

    這篇文章主要介紹了詳談Vue.js框架下main.js,App.vue,page/index.vue之間的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue單文件組件lint error自動fix與styleLint報錯自動fix詳解

    vue單文件組件lint error自動fix與styleLint報錯自動fix詳解

    這篇文章主要給大家介紹了關(guān)于vue單文件組件lint error自動fix與styleLint報錯自動fix的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 對vue里函數(shù)的調(diào)用順序介紹

    對vue里函數(shù)的調(diào)用順序介紹

    下面小編就為大家分享一篇對vue里函數(shù)的調(diào)用順序介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 全新打包工具parcel零配置vue開發(fā)腳手架

    全新打包工具parcel零配置vue開發(fā)腳手架

    parcel-vue 一個基于Parcel打包工具的 VueJS急速開發(fā)腳手架解決方案,強(qiáng)烈建議使用node8.0以上。下面通過本文給大家介紹全新打包工具parcel零配置vue開發(fā)腳手架的相關(guān)知識,感興趣的朋友一起看看吧
    2018-01-01

最新評論