学习日记--关于vue.js 非父子元素传值的测试
前言,非父子模块传值能否实时获取呢?
测试一:
父到子
结果:能,顺利接受到123。
代码:
// 媒介js文件 bus.js import Vue from 'vue' export default new Vue() // 父组件 <template> <demo-val></demo-val> </template> <script> import demoVal from './demo2.vue' import bus from './bus.js' export default { name: '', components: { demoVal }, mounted(){ bus.$emit('val',123) } } </script> // 子组件 <template> <div>demo2</div> </template> <script> import bus from './bus.js' export default { name: "Demo2", mounted() { bus.$on('val', (data) => { console.log(data) }) } } </script>
测试二:
子到父
结果:不能,但是在加载子组件之后,再修改父组件时就能得到123。说明可以传值,但是必须要先让传值放=方生成才行。
// bus.js import Vue from 'vue' export default new Vue() // 父组件 <template> <demo-val></demo-val> </template> <script> import demoVal from './demo2.vue' import bus from './bus.js' export default { name: '', components: { demoVal }, mounted(){ bus.$on('val', (data) => { console.log(data) }) } } </script> // 子组件 <template> <div>demo2</div> </template> <script> import bus from './bus.js' export default { name: "Demo2", mounted() { bus.$emit('val',123) } } </script>
测试三:
兄弟组件中
2兄弟组件中emil值,不能被3组件接受,但是把3组件提到2位置就可以。……我也不知道是为什么…………。
// 父组件 <template> <div> <demo-val2></demo-val2> <demo-val3></demo-val3> </div> </template> <script> import demoVal2 from './demo2.vue' import demoVal3 from './demo3.vue' export default { name: '', components: { demoVal2, demoVal3 } } </script> // 兄弟组件1 <template> <div>demo2</div> </template> <script> import bus from './bus.js' export default { name: "demo2", mounted() { console.log(2222) bus.$emit('val', 'toval') } } </script> // 兄弟组件2 <template> <div>demo3</div> </template> <script> import bus from './bus.js' export default { name: "demo3", mounted() { console.log(3333) bus.$on('val', (data) => { console.log(data) }) } } </script>
疑惑解答:
本文作者:轻风细雨_林木木
本文链接:https://www.cnblogs.com/linzhifen5/p/16961346.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步