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

Vue?生命周期和數(shù)據(jù)共享詳解

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

1. 組件的生命周期

1.1 生命周期與生命周期函數(shù) 

生命周期是指一個(gè)組件從 創(chuàng)建 => 運(yùn)行 => 銷毀 的整個(gè)時(shí)間段,強(qiáng)調(diào)的是一個(gè)時(shí)間段。生命周期函數(shù)是由 vue 框架提供的內(nèi)置函數(shù),會(huì)伴隨著組件的生命周期,自動(dòng)按次序執(zhí)行。

1.2 組件生命周期函數(shù)的分類

在這里插入圖片描述

1.3 生命周期圖示以及詳解

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

組件創(chuàng)建階段

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

組件運(yùn)行階段

  • beforeUpdata 
    • 將要根據(jù)變化過最新的數(shù)據(jù)重新渲染組件的模板結(jié)構(gòu)
    • data是最新的 ui結(jié)構(gòu)中的內(nèi)容還是舊的 
  • updataed 
    • 已經(jīng)根據(jù)最新的數(shù)據(jù)完成了組件的 DOM 結(jié)構(gòu)的重新渲染
    • 新的 data 最新的 ui結(jié)構(gòu)
    • 當(dāng)數(shù)據(jù)變化之后,操作最新的 DOM 結(jié)構(gòu)

組件銷毀階段

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

destoryed 組件已經(jīng)完全被銷毀,此時(shí)組件在瀏覽器中對(duì)應(yīng)的 DOM 結(jié)構(gòu)已經(jīng)完全移除

2. 組件之間的數(shù)據(jù)共享

2.1 組件之間的關(guān)系

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

  • 父子關(guān)系
  • 兄弟關(guān)系

2.2 父向子傳值

使用自定義屬性

  • 簡單類型復(fù)制,復(fù)雜類型是傳的引用。
  • 不要修改 props 的值
  • 父組件通過 v-bind 綁定數(shù)值
<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 子向父?jìng)髦?/h3>

使用自定義事件

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

當(dāng) click事件觸發(fā) => 調(diào)用 add 函數(shù) => 觸發(fā) numChange 事件 =>

this.count作為實(shí)參傳遞給 getNewCount 函數(shù) => 形參為 val

export default {
    data(){
        return {
            // 子組件的數(shù)據(jù)
            count: 0
        }
    },
    methods: {
        add(){
            this.count += 1
            // 觸發(fā)一個(gè)自定義事件并且傳遞參數(shù)
            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 兄弟之間的數(shù)據(jù)關(guān)系

在 vue2.x 使用 eventBus

在這里插入圖片描述

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

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

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

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

在數(shù)據(jù)接收方,調(diào)用 bus.$on('事件名稱',事件處理函數(shù)) 方法注冊(cè)一個(gè)自定義事件

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

總結(jié)

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

相關(guān)文章

  • vue實(shí)現(xiàn)前端按鈕組件權(quán)限管理

    vue實(shí)現(xiàn)前端按鈕組件權(quán)限管理

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

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

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

    安裝多版本Vue-CLI的實(shí)現(xiàn)方法

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

    vue 組件基礎(chǔ)知識(shí)總結(jié)

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

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

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

    詳解vue2 $watch要注意的問題

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

    vue3配置代理實(shí)現(xiàn)axios請(qǐng)求本地接口返回PG庫數(shù)據(jù)

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

    Vue驗(yàn)證碼60秒倒計(jì)時(shí)功能簡單實(shí)例代碼

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

    如何利用vue+element?ui實(shí)現(xiàn)好看的登錄界面

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

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

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

最新評(píng)論

行唐县| 开封县| 三明市| 长垣县| 兴文县| 西吉县| 芜湖县| 柳江县| 新沂市| 牙克石市| 寿阳县| 长乐市| 新昌县| 和平县| 渭南市| 南陵县| 武冈市| 海城市| 大洼县| 黄大仙区| 滕州市| 金湖县| 浑源县| 隆昌县| 沙河市| 长顺县| 石台县| 祥云县| 丰都县| 达拉特旗| 普格县| 乐陵市| 江源县| 英德市| 虞城县| 察隅县| 临安市| 宜昌市| 宁河县| 宿州市| 固原市|