## 非父子組件間組件傳值

## 兩種方式
1. 借助vuex.
2. 使用發布訂閱模式,總線機制(Bus/總線/發布訂閱模式/觀察者模式)
## 總線機制
```
<div id="app">
<child content="jack"></child>
<child content="milan"></child>
</div>
<script>
Vue.prototype.bus = new Vue();
Vue.component('child', {
props: {
content: String,
},
data: function () {
return {
selfContent: this.content,
};
},
template: `
<div @click="handleClick"> {{selfContent}} </div>
`,
methods: {
handleClick: function () {
this.bus.$emit('change', this.selfContent);
}
},
mounted: function () {
var this_ = this;
this.bus.$on('change', function (msg) {
this_.selfContent = msg;
})
}
});
new Vue({
el: '#app',
});
</script>
```
- 基礎
- MVVM
- 前端組件化
- VUE實例
- 生命周期
- 指令
- v-bind
- 模板語法
- 使用樣式
- class樣式
- 內聯樣式
- v-for
- v-if和v-show
- 過濾器
- 計算屬性
- 方法偵聽器
- 計算屬性的set和get
- watch,computed,methods對比
- 樣式綁定
- 條件渲染
- 組件
- 組件化和模塊化區別
- 使用組件的細節
- 父子組件數據傳遞
- 組件參數校驗與非props特性
- 給組件綁定原生事件
- 非父子組件間的傳值
- 在vue中使用插槽
- 作用域插槽
- 動態組件與v-once指令
- 動畫特效
- vue中CSS動畫原理
- 使用animate
- 同時使用過度和動畫
- JS動畫與velocity的結合
- 多個元素或組件的過度
- vue列表過度
- 動畫封裝
- 路由
- 什么是路由
- VUEX
- 概述
- 安裝
- 訪問倉庫