vue中,兄弟组件之间传值
vue中,兄弟组件之间传值项目中,需要使用多个子组件,当需要传递值的时候,较为麻烦,怎样实现呢1、一般可以使用子组件a传递给父组件,再由父组件传递给子组件b。但是一般较为麻烦,2、使用bus作为中介,来传递ab组件之间的值首先,创建bus.js文件,一般在src目录下,第一步:src/bus.jsimport Vue from 'vue';export default new Vue;其次,在组件
·
vue中,兄弟组件之间传值
项目中,需要使用多个子组件,当需要传递值的时候,较为麻烦,怎样实现呢
1、一般可以使用子组件a传递给父组件,再由父组件传递给子组件b。但是一般较为麻烦,
2、使用bus作为中介,来传递ab组件之间的值
首先,创建bus.js文件,一般在src目录下,
第一步:src/bus.js
import Vue from 'vue';
export default new Vue;
其次,在组件a中,(只是截取部分代码,此处仅有触发传递的代码)
第二步:a.vue-发送数据
<el-button @click="edit(item.id)" >编辑</el-button>
引入
import Bus from "@/bus.js";
methods:{
edit(id){
Bus.$emit("businessId", id); // I、发送数据
this.$router.push({ path: `/admin/editbusiness/${id}` });
console.log(id);
}
}
路由跳转一种写法,当router-link不够方便的时候,大多数可以使用$router.push
this.$router.push({ path: '/admin/editbusiness',query:{id:1}});
this.$router.push({ name: 'business',params:{id:1}});
第三步:b.vue-接收数据
b.vue(b组件)
// 第一步:引入
import Bus from "@/bus.js";
// 第二步: 创建一个函数,接收拿到的数据
getAData(val) {
console.log(val); // III、验证数据
},
// 第三步:mounted中进行触发
mounted(){
Bus.$on("businessId", this.getAData); // II、接收数据
}
以上就是父子组件之间的传值
更多推荐
已为社区贡献72条内容
所有评论(0)