欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

Vue2.0关于父组件与子组件之间的事件发射与接收

程序员文章站 2022-04-11 20:36:17
...
本文主要和大家介绍Vue2.0父组件与子组件之间的事件发射与接收实例代码,需要的朋友可以参考下,希望能帮助到大家。

关于vue2.0的事件发射和接收,大家都知道$dispatch$broadcast在vue2.0已经被弃用了,取而代之的是更加方便快捷的方式,使用事件中心,组件通过它来互相通信,不管组件在哪一个层都可以通过实例化一个空Vue来实现。上案例:

Vue2.0关于父组件与子组件之间的事件发射与接收

这是自己写的一个小案例,功能就是点击子组件的加减按钮控制父组件的数量变化。原理就是子组件的加减按钮点击时分发事件,父组件接收事件。相信html和css的代码大家都没问题,这里不赘述,直接说js部分,首先在项目初始化时先给data添加名为eventHub的空Vue对象,作用是让任何组件都可以调用事件发射和接收的方法。代码如下:

Vue2.0关于父组件与子组件之间的事件发射与接收

在点击加号按钮时向父组件派发事件:

Vue2.0关于父组件与子组件之间的事件发射与接收

由于我写的json数据是两层的:

Vue2.0关于父组件与子组件之间的事件发射与接收

所以两层循环把数据展示在页面上,要精确将某个食物的数量显示必须知道第一大类和这一大类下这个食物的索引值,在这里在html那里先把两个索引传进子组件,在分发事件时再和数量一起打包成对象发射给父组件。

Vue2.0关于父组件与子组件之间的事件发射与接收

记得子组件要在props里对child,parent进行声明,接着是父组件对发射过来的countFunc进行接收:

Vue2.0关于父组件与子组件之间的事件发射与接收

到了这个时候将子组件传过来的countFunc里的obj进行console.log(),你会发现父组件已经接收了一个对象:Object {count: 1, index: 0, parent: 0},也就是当我点击一下苹果的加号按钮时传过来count为1说明数量为1,parent索引为0说明是第一大类,index为0说明是第一大类下的苹果,至此已经实现了父子组件之间的事件发射和接收。

完整代码如下:

1.父组件:


Vue2.0关于父组件与子组件之间的事件发射与接收

Vue2.0关于父组件与子组件之间的事件发射与接收

Vue2.0关于父组件与子组件之间的事件发射与接收

Vue2.0关于父组件与子组件之间的事件发射与接收

2.子组件:


Vue2.0关于父组件与子组件之间的事件发射与接收

Vue2.0关于父组件与子组件之间的事件发射与接收

Vue2.0关于父组件与子组件之间的事件发射与接收

相关推荐:

Node.js中使用事件发射器模式实现事件绑定详解_node.js

以上就是Vue2.0关于父组件与子组件之间的事件发射与接收的详细内容,更多请关注其它相关文章!