非父子之間的組件傳值,能夠使用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