vue2.0兄弟组件传递数据

本文介绍了一种Vue中兄弟组件间通信的方法,通过创建一个全局的Vue实例作为消息中心,A组件通过`bus.$emit`派发事件并传递数据,B组件则通过`bus.$on`监听事件并获取数据。

最近在看vue2.0,感觉就一个字——坑!大大的坑!在做兄弟组件通信的时候$dispatch已经被废了啊。网上资料也都说了各种方法,也就几句代码的事,说起来简单。具体怎么用也没有详细的讲。以下是我实现的效果

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

//定义公共文件

·······································································································································································

import bus from 'components/public.js'   //引用相同文件

 methods: {
      addCart (event) {
        if (!event._constructed) {
          return;
        };
        if (!this.food.count) {
          Vue.set(this.food, 'count', 1);
        } else {
          this.food.count++;
        };
        bus.$emit('caradd', event.target);

//A组件派发任务传递数据

      },
      decCart (event) {
        if (!event._constructed) {
          return;
        };
        if (this.food.count) {
          this.food.count--;
        };
      }
    }

·····························································································································································

import bus from 'components/public.js'    //引用相同文件

created () {
      bus.$on('caradd', (res) => {
        console.log(res);
      });
 }

//B组件接收数据,控制台就能输出了


贴上来给大家看怎么传递数据的方法,其他代码可以略过。

Vue2.0中,父子组件之间可以通过props属性和$emit方法进行函数的递。 首先,在父组件中,通过props属性将函数递给子组件。在父组件中定义一个函数,然后将它添加到子组件的props中。例如: ```js // 父组件 <template> <div> <child-component :childFunction="parentFunction"></child-component> </div> </template> <script> export default { methods: { parentFunction() { // 在父组件中定义的函数 } } } </script> ``` 然后,在子组件中,通过this.$emit方法将其作为事件,从而调用父组件中的函数。在子组件中通过$emit方法触发一个事件,并将需要递的参数递给父组件中的函数。例如: ```js // 子组件 <template> <div> <button @click="childFunction">点击按钮</button> </div> </template> <script> export default { props: { childFunction: { type: Function, required: true } }, methods: { childFunction() { this.$emit('child-function'); } } } </script> ``` 最后,在父组件中,监听子组件的事件,并调用相应的处理函数。在父组件中通过v-on指令监听子组件触发的事件,并在相应的处理函数中调用父组件本身的函数。例如: ```js // 父组件 <template> <div> <child-component :childFunction="parentFunction" @child-function="handleChildFunction"></child-component> </div> </template> <script> export default { methods: { parentFunction() { // 在父组件中定义的函数 }, handleChildFunction() { // 处理子组件触发的事件 } } } </script> ``` 通过上述的方式,就可以在Vue2.0中实现父子组件之间的函数递。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值