vue2几种不同组件(页面)间传值的方式
在应用复杂时,推荐使用vue官网推荐的vuex,以下讨论简单SPA中的组件间传值。
一、路由传值
在跳转页面的时候,在js代码中的操作如下,在标签中使用标签
this.$router.push({
name: "routePage",
query/params: {
routeParams: params
}
})
需要注意的是,实用params去传值的时候,在页面刷新时,参数会消失,用query则不会有这个问题。
这样使用起来很方便,但url会变得很长,而且如果不是使用路由跳转的界面无法使用。
二、通过
通过下面的方法调用:
this.$parent.$data.id //获取父元素data中的id
this.$children.$data.id //获取父元素data中的id
这样用起来比较灵活,但是容易造成代码耦合性太强,导致维护困难
三、通过eventBus传递数据
使用前可以在全局定义一个eventBus
window.eventBus = new Vue();
在需要传递参数的组件中,定义一个emit发送需要传递的值,键名可以自己定义(可以为对象)
eventBus.$emit("eventBusName", id);
在需要接受参数的组件重,用on接受该值(或对象)
created(){
eventBus.$on("getTargetTitle", text => {
this.sbTitle = text
});
},
最后记住要在beforeDestroy()中关闭这个eventBus
eventBus.$off("eventBusName");
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 字符串统计
- 下一篇: php在foreach中使用引用赋值&可能遇到的问题