VUE子父组件以及兄弟组件之间的传值

一、父传子
自定义属性

 父组件:使用v-bind传值
 <child :message="parentMsg"></child>
 
 **子组件:通过props接收传过来的值**
 props:['message']

二、子传父
自定义事件

 子组件:通过$emit发送数据
 <button @click="sendMsgToParent">向父组件传值</button>
 methods:{
    sendMsgToParent:function () {
        //第一个参数是发送的事件名称 第二个参数是发送的数据
        this.$emit("listenToChildEvent",'this message is from child')
    }
 }
 
父组件:通过发送的事件名称来获取
<child @listenToChildEvent="sendMsgFromChild"></child>
methods:{
    sendMsgFromChild:function (data) {
        console.log(data)
    }
 }

三、兄弟组件

2个组件都引入一个vue实例 bus.js 来实现传递

bus.js代码如下:

import Vue from 'vue';
export default new Vue;
兄弟one:通过$emit发送数据
<button @click="snedMsg">one像two传值</button>
methods:{
    snedMsg:function () {
        //第一个参数是发送的名称 第二个参数是发送的数据
         bus.$emit('userDefinedEvent','this message is from one')
     }
 }
兄弟two:通过$on监听内容
 mounted(){
      var self = this;
      bus.$on('userDefinedEvent',function (msg) {
          self.msg = msg
      })
  }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue3中,组件组件的方式与Vue2类似。使用组件的props属性来接收组件递的,并且通过v-bind指令将组件的数据递给组件的props。这样组件就可以直接使用组件递的了。 在组件中引入组件时,需要使用v-bind指令将组件的数据绑定到组件的props上。例如,在组件中引入名为"child"的组件,可以使用以下方式: ``` <child :par-obj="parObj"></child> ``` 其中,`:par-obj`是组件的prop名称,"parObj"是组件中的数据。这样组件就可以通过props接收到组件递的数据了。 而在组件中,可以使用computed属性来监听组件递的props,并在set方法中通过$emit方法向组件发送事件和数据。这样可以实现组件组件之间的双向绑定。例如,可以使用以下方式来实现组件组件之间的循环: ``` computed: { currentActiveNames: { get() { return this.activeNames; //组件组件 }, set(val) { this.$emit('on-change-activeNames', val); //改变由组件控制 } } } ``` 在上述代码中,currentActiveNames是组件的computed属性,可以通过get方法获取组件递的,并且通过set方法将组件内部的改变反馈给组件。通过触发`on-change-activeNames`事件,组件就可以将新的递给组件。 总结:在Vue3中,组件组件的方式依然是通过props属性,而组件组件可以通过computed属性和$emit方法实现双向绑定。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue 组件 组件修改组件的解决办法](https://blog.csdn.net/jj_0628/article/details/102966527)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuTongA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值