" />

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

vue組件間傳值的方法你知道幾種

 更新時間:2022年02月11日 10:32:21   作者:最好的我們,  
這篇文章主要為大家詳細介紹了vue組件間傳值的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

一丶父子組件傳值

先在父組件中給子組件的自定義屬性綁定一個 父組件的變量

<template class="father">
   <child :自定義屬性名="父組件的變量"></child> 
<template >

在子組件的props屬性中可以取出父組件給的值,props中的變量用法和data中變量用法完全一樣,只不過值的來源不同

export default {
	name: "child",
	props: ["自定義屬性名"],
    data() {}
}

二丶子父組件傳值

先在父組件中給子組件的 自定義屬性 綁定一個父組件的函數(shù)

<template class="father">  
	<child  @自定義事件="父的處理函數(shù)">
<template >
export default {
	name: "father",
	data() {}
	methods:{
		父的處理函數(shù)(參數(shù)){
            //參數(shù):得到子組件觸發(fā)事件($emit)時,傳遞過來的數(shù)據(jù)
        }
    }
})

在子組件中 this.$emit(“父的處理函數(shù)”,this.數(shù)據(jù)) 觸發(fā)父組件中的函數(shù)進行傳參

三丶兄弟組件傳值

事件總線:

就是創(chuàng)建一個事件中心,相當于中轉(zhuǎn)站,可以用它來傳遞事件和接收事件

創(chuàng)建全局空Vue實例:eventBus

import Vue from 'vue';
const eventBus= new Vue()  //創(chuàng)建事件總線
export default eventBus;

具體頁面使用$emit發(fā)布事件 - 傳遞值

import eventBus from '@u/eventBus'
eventBus.$emit('send',‘hello')

具體頁面使用$on訂閱事件 - 接收組件值

import eventBus from '@u/eventBus'
eventBus.$on('send', msg => {
	console.log(msg)  //控制臺輸出 hello
}

注意:$on先進行監(jiān)聽,一旦$emit發(fā)布事件后所有組件都可以$on監(jiān)聽到事件。所以傳遞參數(shù)的時候一定已經(jīng)先進行了監(jiān)聽才能得到參數(shù)。比如在父組件中$emit事件放在mounted鉤子函數(shù)中,等待子組件創(chuàng)建并$on開始監(jiān)聽事件后再去觸發(fā)$emit發(fā)布事件。

$off()移除事件監(jiān)聽

import eventBus from '@u/eventBus'
eventBus.$off('send')  

事件訂閱功能$on是$eventBus對象完成的,與組件無關(guān),如果用v-if銷毀子組件的時候,會形成閉包,造成內(nèi)存泄露,所有要在銷毀組件的時候進行取消監(jiān)聽事件

具體形成原因點擊查看

四丶$parent /$children與ref

$parent方法是在子組件中可以直接訪問該組件的父實例或組件。

在父組件中定義一個切換顯示頁面執(zhí)行中的顯示方法。

switchLoadPage(msg) {
    if(!this.loading && msg)
  		this.loadtext=msg;
  		this.loading = !this.loading;
},

? 在子組件中直接通過$parent去調(diào)用該方法

this.$parent.switchLoadPage();

$children方法是在父組件中可以直接訪問子組件的實例,但是不保證子組件的順序。

ref 被用來給DOM元素或子組件注冊引用信息。引用信息會根據(jù)父組件的 $refs 對象進行注冊。如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子組件上,引用信息就是組件實例。

在父組件中自定義一個表格組件,給子組件加上 ref屬性

<result ref="result" :config="dgConfig"  ></result>

在父組件中就可以通過this.$refs.result去找到result子組件進行操作,比如把父組件的sdata直接放入子組件中

methods: {
  	info(){
   		this.$refs.result.sdata = this.sdata;
    },
}

總結(jié)

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

相關(guān)文章

  • vue點擊頁面空白處實現(xiàn)保存功能

    vue點擊頁面空白處實現(xiàn)保存功能

    這篇文章主要介紹了vue點擊頁面空白處實現(xiàn)保存功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • Element輸入框帶歷史查詢記錄的實現(xiàn)示例

    Element輸入框帶歷史查詢記錄的實現(xiàn)示例

    這篇文章主要介紹了Element輸入框帶歷史查詢記錄的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Vue實現(xiàn)Dialog封裝

    Vue實現(xiàn)Dialog封裝

    在寫業(yè)務的時候很常見的一個場景就是需要在不同的頁面調(diào)用同一個表單,常用的交互就是把表單以彈窗的形式展示,本文主要介紹了Vue實現(xiàn)Dialog封裝,感興趣的可以了解一下
    2021-07-07
  • 關(guān)于el-form中el-input輸入框的寬度問題詳解

    關(guān)于el-form中el-input輸入框的寬度問題詳解

    自從用了element-ui,確實好用,該有的組件都有,下面這篇文章主要給大家介紹了關(guān)于el-form中el-input輸入框的寬度問題的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • vue如何實現(xiàn)左右滑動tab(vue-touch)

    vue如何實現(xiàn)左右滑動tab(vue-touch)

    這篇文章主要介紹了vue如何實現(xiàn)左右滑動tab(vue-touch),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 詳解Element-UI中上傳的文件前端處理

    詳解Element-UI中上傳的文件前端處理

    這篇文章主要介紹了詳解Element-UI中上傳的文件前端處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • vue實現(xiàn)簡單的日歷效果

    vue實現(xiàn)簡單的日歷效果

    這篇文章主要為大家詳細介紹了vue實現(xiàn)簡單的日歷效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Vue3中組件數(shù)據(jù)通信方式總結(jié)

    Vue3中組件數(shù)據(jù)通信方式總結(jié)

    如果在面試中,面試官問你Vue組件之間有哪些數(shù)據(jù)通信方式,你會怎么回復,不要擔心,本文為大家整理了超全的Vue3中組件數(shù)據(jù)通信方式,需要的小伙伴快收藏起來吧
    2023-06-06
  • vue使用html2PDF實現(xiàn)將內(nèi)容導出為PDF

    vue使用html2PDF實現(xiàn)將內(nèi)容導出為PDF

    將 HTML 轉(zhuǎn)換為 PDF 進行下載是一個比較常見的功能,這篇文章將通過html2PDF實現(xiàn)將頁面內(nèi)容導出為PDF,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-11-11
  • 詳解基于vue-router的動態(tài)權(quán)限控制實現(xiàn)方案

    詳解基于vue-router的動態(tài)權(quán)限控制實現(xiàn)方案

    本篇文章主要介紹了詳解基于vue-router的動態(tài)權(quán)限實現(xiàn)方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論