把msg.js里的内容改成下边的
import mitt from 'mitt'
const bus = {}
const emitter = mitt()
bus.$on = emitter.on
bus.$off = emitter.off
bus.$emit = emitter.emit
export default bus
重启报错,按照提示安装 npm install --save mitt,再重启就可以了。
关于错误'export "default" <imported as Vue> was not found in vue',我的博客可以解答https://blog.csdn.net/m0_37191919/article/details/118225526
事件总线msg的扩展名是msg.js
1通过方法传值
①首先用到这个参数的组件引入当前组件 eg:import Msg from ".msg.vue"
②在触发这个方法中写入需要传递的参数 eg:

③其中msg.js中的代码为。eg:

引用组件处传值:组件.$emit("val","1")
原组件接收值:mounted钩子里面接收,组件.$on("val",function(){})
数据传递接收,先载入 总线,在template总添加变量,在输入export中的mounted定义接受函数Msg.$on
$emit 和 $on是一对
用事件总线传值需要用:.js
组件间兄弟传值
传值 Msg.$emit('val','1'); 在methods种
接收值:在mouted中
Msg.$on('val',function(m){
that.content=m
})
用事件总线传值,
总线传值需要用 .js
mark! 总线需要使用.js
marks
如果有同学出现代码都是对的,但是怎么点击都没法修改值,你可以试试把谷歌自动翻译改回原网页。。。如果你用的是谷歌的话
vue1.0中 vm.$dispatch 和 vm.$broadcast 被弃用,改用$emit,$on
事件总线$on接收子组件传的值,用回调函数对传的值进行处理
事件总线必须是js文件,要不然接收不到
事件总线文件需要.js后缀,而不是.vue
事件总线文件需要.js后缀,而不是.vue
使用$on接收val的值
事件总线扩展名.js