Vue组件间通信方式超详细(父传子、父传后代、子传父、后代传父、兄弟组件传值)
创始人
2024-05-27 11:26:51
0

一、父传子、父传后代

方式一:子通过props来接收

image.png
父组件:父组件引入子组件时,通过子组件传值。

备注:这种方式父传值很方便,但是传递给后代组件不推荐(父->子->孙),且这种方式父组件不能直接修改父组件传过来的数据。



子组件:子组件通过props即props:{ parentValue:{ type:String, default:"" } }来接收父组件传过来的值



方式二:通过this.$parent.xxx子组件直接使用父组件的值

备注:这种方式,子组件可以直接修改父组件的数据。

image.png
父组件:正常引入子组件


子组件:通过this.$parent.parentValue获取父组件的数据。


方式三:依赖注入provide/inject

备注:这种方式父组件可以直接向某个后代组件传值,不用再一级一级的传递。

缺点:很难去找这个值是从哪个组件传递过来的。

image.png
父组件:通过provide定义需要传递给后代的数据。


子组件:


孙子组件:通过inject注入爷爷辈组件传递过来的值。



效果图:

image.png

二、子传父、后代传父

方式一:this.$emit(“function”,param)

子组件通过$emit传递一个函数和参数,父组件通过传递过来的函数接收参数即传过来的值。

父子组件一般会触发交互行为(子组件传递过来的值放在生命周期函数里是传不过来的),所以可以通过父子的交互行为获取到子组件传递过来的数据。

image.png
父组件:通过子组件自定义的函数进行绑定接收传递过来的数据。


子组件:通过this.emit("function",param)子组件通过emit("function",param) 子组件通过emit("function",param)子组件通过emit传递一个函数和参数,父组件通过传递过来的函数接收参数即传过来的值。


效果图:

image.png

方式二:this.$child.xxx直接获取子组件数据,且可直接修改子组件的数据。

父组件:this.$children[0].childValue获取子组件数据,只有一个子组件故下标为0.


子组件:


方式三:通过ref/refs获取子组件dom从而直接获取子组件数据。可直接修改子组件数据。

父组件:


子组件与上述相同。

三、兄弟组件传值

方式一:通过中转eventBus.js工具类

新建一个中转eventBus.js工具类,传值的兄弟组件自定义一个函数通过

eventBus.$emit('function',参数);

给接收值的兄弟组件传一个约定好的function名称及参数(即传递的值);接收值的兄弟组件通过

eventBus.$on('function',val=>{console.log("传递过来的值",val)
})

来接收传递过来的值。

image.png
eventBus.js:

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

传值的兄弟组件:


接收值的兄弟组件:


效果图:
在这里插入图片描述

相关内容

热门资讯

用舞蹈书写《夜幕下的哈尔滨》叙...   舞蹈编导张恩淑。本报记者 刘洋摄  ■本报记者 于秋莹 封娇 于博洋  来自韩国的舞蹈编导张恩淑...
上保险!“保梯”又“保人” 玄武区首例,老旧小区加装电梯签署全生命周期综合保险协议上保险!“保梯”又“保人”南报网讯(通讯员 刘...
音飞储存质押触发鹰眼“风险”评... 截止2025年7月5日,音飞储存整体质押股份为4846.54万股,整体质押占总股本之比为16.47%...
天热更要护好“生命线” 转自:湖州日报  记者  忻媛  7月4日,烈日似火,又是一个高温酷暑天。7时许,市城市集团下属水务...
以色列空袭也门胡塞武装控制的红... 转自:新华社新华财经科威特城7月7日电(记者 尹炣)萨那消息:也门胡塞武装旗下多家媒体报道,以色列空...
双杰电气质押触发鹰眼“风险”评... 截止2025年7月5日,双杰电气整体质押股份为1.27亿股,整体质押占总股本之比为15.86%,累计...
德创环保质押触发鹰眼“风险”评... 截止2025年7月5日,德创环保整体质押股份为5405.00万股,整体质押占总股本之比为26.22%...
高口碑粤语音乐剧《大状王》本周... 转自:北京日报客户端近年来原创音乐剧中口碑极佳的粤语音乐剧《大状王》即将首次亮相北京,7月11日至2...
同和药业质押触发鹰眼“风险”评... 截止2025年7月5日,同和药业整体质押股份为411.00万股,整体质押占总股本之比为0.98%,累...
凯伦股份质押触发鹰眼“风险”评... 截止2025年7月5日,凯伦股份(维权)整体质押股份为1.54亿股,整体质押占总股本之比为40.67...