最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue?生命周期和數據共享詳解

 更新時間:2022年02月22日 15:13:14   作者:pingting_  
這篇文章主要為大家詳細介紹了Vue生命周期和數據共享,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1. 組件的生命周期

1.1 生命周期與生命周期函數 

生命周期是指一個組件從 創(chuàng)建 => 運行 => 銷毀 的整個時間段,強調的是一個時間段。生命周期函數是由 vue 框架提供的內置函數,會伴隨著組件的生命周期,自動按次序執(zhí)行。

1.2 組件生命周期函數的分類

在這里插入圖片描述

1.3 生命周期圖示以及詳解

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

組件創(chuàng)建階段

  • beforeCreted props/data/methods … 都未被創(chuàng)建,啥也干不了
  • created
    • props/data/methods … 都創(chuàng)建好了
    • 經常在此函數里調用 methods 中的方法,請求服務器中的數據。
    • 并且把請求到的數據轉存在 data 中,提供 template 模板渲染的時候使用。
    • 但是模板結構尚未生成,不能訪問 DOM 結構,DOM 結構均為 null
  • beforeMount 將要把內存中編譯好的 HTML 結構渲染到瀏覽器中
  • mounted
    • 已經把內存中的 HTML 結構成功的渲染到了瀏覽器
    • 此時瀏覽器中已經包含了當前組件的 DOM 結構
    • 這也是最早可以操作 DOM 的時候

組件運行階段

  • beforeUpdata 
    • 將要根據變化過最新的數據重新渲染組件的模板結構
    • data是最新的 ui結構中的內容還是舊的 
  • updataed 
    • 已經根據最新的數據完成了組件的 DOM 結構的重新渲染
    • 新的 data 最新的 ui結構
    • 當數據變化之后,操作最新的 DOM 結構

組件銷毀階段

beforeDestory 將要銷毀這個組件,此時尚未銷毀組件還處于正常工作的狀態(tài)

destoryed 組件已經完全被銷毀,此時組件在瀏覽器中對應的 DOM 結構已經完全移除

2. 組件之間的數據共享

2.1 組件之間的關系

在項目的開發(fā)中,組件之間的最常見的關系分為如下兩種:

  • 父子關系
  • 兄弟關系

2.2 父向子傳值

使用自定義屬性

  • 簡單類型復制,復雜類型是傳的引用。
  • 不要修改 props 的值
  • 父組件通過 v-bind 綁定數值
<Son :msg="message" :user="userinfo"></Son>
export default {
    data() {
        return {
            message: 'hello son',
            userinfo: {
                name: 'pingting',
                age: 18
            }
        }
    }
}

子組件通過 props 聲明自定義屬性

<div>
    <h3>Son 組件</h3>
    <p>父組件傳過來的 msg: {{ msg}} </p>
    <p>父組件傳過來的 user:{{ user}} </p>
</div>
export default {
    props: ['msg' , 'user']
}

2.3 子向父傳值

使用自定義事件

子組件通過 $emit 將值傳遞給父組件

當 click事件觸發(fā) => 調用 add 函數 => 觸發(fā) numChange 事件 =>

this.count作為實參傳遞給 getNewCount 函數 => 形參為 val

export default {
    data(){
        return {
            // 子組件的數據
            count: 0
        }
    },
    methods: {
        add(){
            this.count += 1
            // 觸發(fā)一個自定義事件并且傳遞參數
            this.$emit('numChange' , this.count)
        }
    }
}

父組件

@ 綁定自定義事件

<Right @numChange="getNewCount"></Right>
export default {
    data() {
        return {
            // 接收 right 傳過來的 count
            countFather: 0
        }
    },
    methods: {
      getNewCount(val){
        this.countFather = val
      }
    }
}

2.4 兄弟之間的數據關系

在 vue2.x 使用 eventBus

在這里插入圖片描述

創(chuàng)建 eventBus.js 模塊,并向外共享一個 Vue 的實例對象

import Vue from 'vue'
export default new Vue()

在數據發(fā)送方,調用 bus.$emit('事件名稱',發(fā)送的數據) 方法觸發(fā)自定義事件

<button @click="sendStr">發(fā)送數據給 Right </button>
import bus from './eventBus.js'
export default {
    data(){
        return {
            str: '這是Son的str數據,將要共享出去'
        }
    },
    methods: {
        sendStr(){
            // 通過 eventBus 發(fā)送數據
            bus.$emit('share' , this.str)
        }
    }
}

在數據接收方,調用 bus.$on('事件名稱',事件處理函數) 方法注冊一個自定義事件

<p>從 Son 接受的數據:{{ strFromSon }} </p>
import bus from './eventBus.js'
export default {
    data(){
        return {
            strFromSon: ''
        }
    },
    created() {
        bus.$on('share' , (val) => {
            this.strFromSon = val
        })
    }
}

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!  

相關文章

  • vue實現前端按鈕組件權限管理

    vue實現前端按鈕組件權限管理

    這篇文章主要為大家介紹了vue實現前端按鈕組件權限管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Vue3使用中這些坑你都踩過嗎

    Vue3使用中這些坑你都踩過嗎

    Vue3?目前已經趨于穩(wěn)定,不少代碼庫都已經開始使用它,很多項目未來也必然要遷移至Vue3,本文記錄了使用Vue3時遇到的一些問題,希望能對大家有所幫助
    2023-09-09
  • 安裝多版本Vue-CLI的實現方法

    安裝多版本Vue-CLI的實現方法

    這篇文章主要介紹了安裝多版本Vue-CLI的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • vue 組件基礎知識總結

    vue 組件基礎知識總結

    這篇文章主要介紹了vue 組件基礎知識的相關資料,幫助大家更好的理解和使用vue的組件,感興趣的朋友可以了解下
    2021-01-01
  • vuex如何修改狀態(tài)state的方法

    vuex如何修改狀態(tài)state的方法

    這篇文章主要介紹了vuex如何修改狀態(tài)state的方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解vue2 $watch要注意的問題

    詳解vue2 $watch要注意的問題

    本篇文章主要介紹了詳解vue2 $watch要注意的問題,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue3配置代理實現axios請求本地接口返回PG庫數據

    vue3配置代理實現axios請求本地接口返回PG庫數據

    這篇文章主要為大家詳細介紹了vue3配置代理實現axios請求本地接口返回PG庫數據的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2025-03-03
  • Vue驗證碼60秒倒計時功能簡單實例代碼

    Vue驗證碼60秒倒計時功能簡單實例代碼

    這篇文章主要介紹了Vue驗證碼60秒倒計時功能簡單實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • 如何利用vue+element?ui實現好看的登錄界面

    如何利用vue+element?ui實現好看的登錄界面

    最近做了個最基礎的ElementUI登錄頁,適合新手查看,所以下面這篇文章主要給大家介紹了關于如何利用vue+element?ui實現好看的登錄界面的相關資料,需要的朋友可以參考下
    2022-05-05
  • Vue事件處理原理及過程詳解

    Vue事件處理原理及過程詳解

    這篇文章主要介紹了vue事件處理原理及過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03

最新評論

靖安县| 连平县| 台湾省| 平舆县| 饶河县| 江口县| 教育| 罗山县| 三亚市| 潞西市| 达日县| 房产| 阳朔县| 田阳县| 德格县| 鲜城| 新安县| 米泉市| 合阳县| 大洼县| 安乡县| 工布江达县| 阳江市| 石家庄市| 鹰潭市| 泰和县| 台北县| 乾安县| 抚顺县| 铜陵市| 茶陵县| 开化县| 沐川县| 嘉定区| 柞水县| 闽侯县| 辛集市| 金堂县| 墨竹工卡县| 昌都县| 衡阳县|