javascript - weex组件通信的疑问,不能类似与vue自动冒泡到父组件吗?
天蓬老师
天蓬老师 2017-04-11 11:49:00
[JavaScript讨论组]

看官方文档,组件通讯

讲到事件通信都是通过this._parent(名称太怪了,后面会改成$parent)。来获取父组件,或者用this.$vm(id)获取子组件,来调用$emit方法进行通讯。

但是原来概念中事件在emit之后,不是应该自动传播到父组件吗?为什么需要this._parent,去调用父组件的$emit方法。

这样的话,不是会导致this._parent._parent...,另外也会耦合比较严重,如果我中间加了一层组件,就需要把事件相关处理的代码都修改一下。

这样设计的原因是因为什么呢?希望大家能解答,谢谢大家。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
巴扎黑

改成使用 $dispatch 就可以了。

从子组件往上层发送事件可以使用 this.$dispatch('eventName', {foo: 'bar'});

上层组件广播事件可以使用 this.$broadcast('eventName', {foo: 'bar'});

接收事件用 this.$on('eventName, function (){});

PHP中文网

在 Vue 2.0 的设计里 $dispatch$broadcast 也已经去掉了,因为这两个 API 特别容易被滥用,导致开发者在 debug 的时候,发现一个组件收到了消息,却很难确定这个消息是从哪个组件发过来的。所以 Weex 早期也和 Vue 1.x 一样有这两个 API,现在也把这两个 API 废弃掉了。

额外的,现在 Weex 已经支持了 Vue 2.0,我们更建议大家直接基于 Vue 2.0 完成开发。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号