非父子之间的组件传值,能够使用vuex。简单的状态管理,也能够用vue bushtml
vue bus能够实现不一样组件间、不一样页面间的通讯,好比我在A页面出发点击事件,要B页面发生变化,使用方法以下:vue
全局定义:main.jsvuex
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>非父子组件传值(bus/总线/发布订阅模式/观察者模式)</title> <script src="./vue.js"></script> </head> <body> <div id="app"> <child content="Dell"></child> <child content="Lee"></child> </div> <script> Vue.prototype.bus = new Vue(); Vue.component('child',{ data:function(){ return { selfContent:this.content } }, props:{ content:String }, template:'<div @click="handleClick">{{selfContent}}</div>', methods:{ handleClick:function(){ //因为bus是vue的一个实例,因此它有$emit这个方法,change就是一个随意的名字,能够改为aaa this.bus.$emit('change',this.selfContent) } }, mounted:function(){ var this_= this; this.bus.$on("change",function(msg){ this_.selfContent=msg; }) } }) var vm= new Vue({ el:'#app', data:{}, methods:{ }, }) </script> </body> </html>
固然也能够参考一些其余人的博客,注意理解app
https://www.jianshu.com/p/5b383e66c117 this
http://www.cnblogs.com/fanlinqiang/p/7756566.htmlspa