03-vue組件傳值

基于現(xiàn)在都是模塊化開發(fā),vue開發(fā)過程中組件之間傳值是必不可少的,常用的vue的組件傳值分為三種方式:父傳子、子傳父、非父子組件傳值。

一、父組件給子組件傳值----通過屬性

1.子組件需要做的事:

(1)創(chuàng)建一個子組件
(2)寫好子組件中自己的邏輯
(3)通過 props:[父組件傳值的key] 來接收父組件傳遞的值
props可接收對象(屬性為傳遞的值,屬性值為規(guī)定傳遞值的數(shù)據(jù)類型)、數(shù)組格式的值

2.父組件需要做的事:

(1)導(dǎo)入子組件

import subimagesilder from '../subcomponent/subimagesilder.vue';

(2)注冊子組件

  components:{
     subimagesilder 
  }

(3)在<template></template>中使用子組件

<subimagesilder :imageList="imageList"></subimagesilder>

注意:imageList是父組件給子組件傳遞的值
形式:<子組件對象 :父組件傳值的key=值></子組件對象>

二、子組件給父組件傳值----通過觸發(fā)自定義事件

1.子組件需要做的事:

(1)寫好子組件自己的代碼
(2)在需要傳值給父組件數(shù)據(jù)的地方定義并調(diào)用key事件

this.$emit(key,值)

key表示自定義事件名,值表示要傳遞的值
這里表示會觸發(fā)key事件
注意,這個key等下在父組件中要使用到

2.父組件需要做的事:

(1)導(dǎo)入子組件
(2)在components中注冊子組件
(3)在<template></template>中使用子組件
(4)在子組件的標簽中,注冊(綁定)key事件發(fā)生時執(zhí)行的函數(shù)名稱,例如:

 <subnumber v-on:key='函數(shù)名稱'></subnumber>

(5)在父組件的methods中,寫好接收子組件傳過來的值的函數(shù)即可,例如:

    methods:{
        函數(shù)名稱(子組件傳遞過來的值){
            xxxxxx
        }
    }

子組件負責(zé)觸發(fā)key事件,父組件負責(zé)注冊key事件

三、非父子組件之間傳遞值----通過Bus/總線/發(fā)布訂閱模式/觀察者模式(4種叫法)

1.創(chuàng)建一個公共的vue實例

  • 方式1:創(chuàng)建一個公共的vue實例(在js中),并且導(dǎo)出,在傳值和接收值的兩方都引入這個js
  • 方式2:Vue.prototype.bus = new Vue();
    表示先在Vue的原型上添加bus屬性,值為Vue的一個實例x。之后創(chuàng)建的Vue實例中都帶有bus屬性,并且bus屬性值都指向Vue實例x

2.在傳值的組件中,調(diào)用公共的vue實例。

通過 vue實例.$emit() 傳值。傳值方觸發(fā)自定義事件

3.在接收的組件中,調(diào)用公共的Vue實例。

通過 Vue實例.$on() 接收。接收方注冊自定義事件

注意:觸發(fā)和監(jiān)聽兩個操作必須在公共的vue實例中進行傳值和接收值

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • VUE介紹 Vue的特點構(gòu)建用戶界面,只關(guān)注View層簡單易學(xué),簡潔、輕量、快速漸進式框架 框架VS庫庫,是一封裝...
    多多醬_DuoDuo_閱讀 2,855評論 1 17
  • 前言 在vue項目中,不可避免的會在不同組件之間進行傳值 ,不同需求下有各式各樣的傳值方式。就比如說,兄弟組件傳值...
    喜歡未來你的我閱讀 1,541評論 2 12
  • vue的生命周期/鉤子函數(shù) 對于實現(xiàn)頁面邏輯交互等效果,我們必須知曉vue的生命周期,才能愉快的玩耍,知...
    han2019閱讀 1,942評論 0 0
  • 除了今天的太陽,什么事情都不要放在心上 學(xué)會收斂自己的光芒和鋒芒,當(dāng)然,如果你能以合適的姿態(tài)鶴立雞群,那就一次成功...
    周璐璐_cc1d閱讀 296評論 0 0
  • 天河一捧注清江, 福澤萬里潤群芳。 北出三峽激還蕩, 南入洞庭瘋且狂。 扶風(fēng)飲月恣歡暢, 踏雪尋梅戲流香。 更喜船...
    琦人閱讀 639評論 10 18

友情鏈接更多精彩內(nèi)容