vue 非父子组件传值

 1 <template>
 2     <div id="news">
 3
 4        我是新闻组件
 5         <br>
 6
 7        <button @click="emitHome()">给Home组件广播数据</button>
 8
 9         <br>
10     </div>
11
12 </template>
13
14
15 <script>
16 //引入 vue实例
17     import VueEvent from ‘../model/VueEvent.js‘;
18
19     export default{
20         data(){
21             return {
22                msg:‘我是一个新闻组件‘
23             }
24         },
25         methods:{
26             emitHome(){
27
28                 //广播
29
30                 VueEvent.$emit(‘to-home‘,this.msg)
31             }
32
33         },
34         mounted(){
35
36             VueEvent.$on(‘to-news‘,function(data){
37                 console.log(data);
38             })
39         }
40
41     }
42
43 </script>
44
45 <style lang="scss" scoped>
46
47 </style>

上面是新闻组件

下面是home组件

 1 <template>
 2     <!-- 所有的内容要被根节点包含起来 -->
 3     <div id="home">
 4
 5        我是首页组件
 6
 7        <br>
 8
 9        <button @click="emitNews()">给News组件广播数据</button>
10
11         <br>
12
13     </div>
14
15 </template>
16
17
18 <script>
19
20 //引入 vue实例
21
22
23     import VueEvent from ‘../model/VueEvent.js‘;
24
25     export default{
26         data(){
27             return {
28                msg:‘我是一个home组件‘,
29                title:‘首页111‘
30             }
31         },methods:{
32
33             emitNews(){
34                 //广播数据
35
36                 VueEvent.$emit(‘to-news‘,this.msg)
37
38             }
39         },
40         mounted(){
41
42             //监听news 广播的数据
43             VueEvent.$on(‘to-home‘,function(data){
44                 console.log(data);
45             })
46         }
47
48     }
49
50 </script>
51
52 <style lang="scss" scoped>
53
54
55
56 </style>

下面是VueEvent.js

1 import Vue from ‘vue‘;
2
3
4 var VueEvent = new Vue()
5
6
7
8 export default VueEvent;

原文地址:https://www.cnblogs.com/sulanlan/p/9942680.html

时间: 2024-08-26 00:32:34

vue 非父子组件传值的相关文章

Vue非父子组件传值(Bus/总线/发布订阅模式/观察者模式)

我们在之前已经知道了父子传值.父组件传递过来了的值,在子组件通过props接受,然后就可以使用了. 也学过了隔代传值,均是通过props逐层传递实现.那么,兄弟节点之间怎么传值呢? 通过bus实现方式如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> &l

【vue】父组件主动调用子组件 /// 非父子组件传值

一  父组件主动调用子组件: 注意:在父组件使用子组件的标签上注入ref属性,例如: <div id="home"> <v-header ref="header"></v-header> <hr> 首页组件 <button @click="getChildData()">获取子组件的数据和方法</button> </div> 父组件主动获取子组件的数据和方法: 1

Vue2.0的三种常用传值方式、父传子、子传父、非父子组件传值

Vue常用的三种传值方式有: 父传子 子传父 非父子传值 引用官网的一句话:父子组件的关系可以总结为 prop 向下传递,事件向上传递.父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息 1. 父组件向子组件进行传值 父组件: <template> <div> 父组件: <input type="text" v-model="name"> <!-- 引入子组件 --> <child :abc=

Vue中非父子组件传值的问题

非父子组件之间的通信,必须要有公共的实例(可以是空的),才能使用 $emit 获取 $on 的数据参数,实现组件通信 第一个组件的数据传递给第二个组件 公共实例文件bus.js,作为公共数控中央总线 import Vue from "vue"; export default new Vue(); 第一个组件 first.vue import Bus from '../bus.js'; export default { name: 'first', data () { return {

Vue组件通信之非父子组件传值

前言: 如果想要了解非父子关系的组件传值,最好是在了解父传子和子传父的基础上在来了解非父子传值可能会有更透彻的思路. 因为非父子传值是通过定义事件总线来代理实现父传子+子传父从而实现的传值方式. 这是我总结的父子传值相关的知识,可供参考: https://www.cnblogs.com/ViavaCos/p/11712131.html 然后大概回顾一下父子传值的过程: 根据上述信息可知,如果两个组件需要传递值那么需要这两个组件之间是父子关系才能传递数据. 那么如果有这样一个组件,既可以帮你传递数

Vue父子组件和非父子组件传值问题

父组件跟子组件之间的传值(具体参考lonzhubb商城) 1.父组件传值给子组件形式,ifshop是要传的对象,右边ifshop代表要传的这个对象的数据 <v-select  :ifshop="ifshop"  :clickType="clickType" @close="close" @addShop="sureAddShop"></v-select> 2.子组件接收父组件的数据用props prop

vue非父子组件间通信

有时候非父子关系的组件也需要通信.在简单的场景下,使用一个空的Vue实例作为中央事件总线: 有时候非父子关系的组件也需要通信.在简单的场景下,使用一个空的 Vue 实例作为中央事件总线: var bus = new Vue() // 触发组件 A 中的事件 bus.$emit('id-selected', 1) // 在组件 B 创建的钩子中监听事件 bus.$on('id-selected', function (id) { // ... }) 在更多复杂的情况下,你应该考虑使用专门的 状态管

vue非父子组件之间值传递

非父子之间通过一个空的vue实例作为事件总线,相当于一个中转站.这个中转站是所有组件都可以看到的,大家通过这个中转站接收和触发事件. import Vue from 'vue' import App from './App' import router from './router' Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', router, data:{ eventHub:

React 父子组件和非父子组件传值

零.this.props 可以接收到 外界的传值 和 此组件标签内部自定义的方法 例: <one vals={message} sendVal={this.handleReverse.bind(this)}></one> 此时在子组件中打印this.props this.props = { vals : '**', sendVal : fn } 由此我们可以进行父子组件之间传值 一.父传子 在子组件标签中用自定义属性进行传递,接收的时候通过this.props进行接收 /* 父组件