问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

子组件 想使用 父组件的 事件 要怎么写

发布网友 发布时间:2022-04-20 19:17

我来回答

1个回答

热心网友 时间:2022-04-22 03:14

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

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

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

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

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

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

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

完整代码如下:

1.父组件:

2.子组件:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我爱我校征文800字 建行聚财宝少一万时5小时内补上会怎样 咪哩乡文化教育 咪哩乡基础设施 咪哩村云南省玉溪市元江县咪哩乡咪哩村 咪哩乡历史文化 元江咪哩中心小学怎么样? 原神 原神胡桃进阶材料是什么? 原神 原神呢胡桃材料有哪些? 原神 原神胡桃的突破材料是什么? Vue设计时为什么不把Vuex放进去? 在vue里面怎么根据接口返回的数量动态设置元素的宽 vue 方法里 将一个数组的每个值给到另一个数组的每... vue中绑定事件为什么+=不正常 vue购物车里面的加减按钮滚动后才生效是怎么回事 vue.js input加减怎么实现 如何利用Vue.js库实现两个数据进行加法运算 酒酿圆子可以放苹果,香蕉桔子吗? 做好的糯米甜酒怎么存放 酒酿吃不完是放冷冻还是冷藏 甜酒酿做好以后怎么储藏 什锦水果羹有什么样的功效?夏天吃有降火的功效吗? 月子水果羹的做法大全 水果羹怎么做 水果羹会破坏维生素吗 酒酿丸子水果羹怎么做 酒酿圆子水果羹的做法,酒酿圆子水果羹怎么做 米酒(江米甜酒)可以直接吃吗-_-? 醪糟怎么做的?吃了有什么好处? 米酒和哪些水果可以放在一起榨果汁 vue中v-model绑定数据,不想让同数据第二个使用数... vue利用v-for循环时怎么只处理点击的那个元素 vue怎么触发元素的原生事件 请问vue的拦截器的方法里面,如何获取某个vue实例... 前端都有什么框架 其特点 冰箱里要加雪种吗? 抄了一段vue的实例,为什么v-for属性不能用 冰箱要加雪种吗? 冰箱加雪种如何进行(步骤详细点)加注多少?我是... vuez怎么删除某个标签上设置的值 Vue.js为什么不支持templateUrl模式 冰柜加雪种多少钱 加雪种的方法是怎么样的 冰箱不够冷,加雪种是否有效 冰箱多加雪种影响制冷效果吗 新的冰箱多长时间加雪种 我们家的海尔冰箱买了几年了!要不要加雪种 电冰箱是否也要加雪种? 冰箱加雪种多少压力? 冰箱要多久才加雪种才合适 冰箱要多久才能加雪种