<div id="app">
<child :app="app" @on-app-change="onAppChange"></child>
<button @click="appMethod">{{ app }}</button>
</div>
<script src="http://cdn.bootcss.com/vue/2.1.10/vue.min.js"></script>
<script type="application/javascript">
Vue.component('child', {
template: '<button @click="childMethod">{{ app }}</button>',
props: ['app'],
data: function () {
return {
// 外部属性只读不可写,增加中间变量
myApp: this.app
};
},
watch: {
// 监听外部属性的变化
app(val) {
this.myApp = val;
},
// 中间变量改变向上传递通知
myApp(val) {
this.$emit("on-app-change", val);
}
},
methods: {
// 改变中间变量值
childMethod: function(){
this.myApp++;
}
},
})
new Vue({
el: '#app',
data: {
app: 0
},
methods: {
appMethod: function () {
this.app++;
},
// 定义方法,用于接收子组件中的通知
onAppChange(val) {
this.app = val;
}
}
})
</script>
Vue 组件通信(双向绑定)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 后感:继“孔子学院”后,中国又将“鲁班工坊”推向世界 --你可能会改变世界 众所周知,孔子学院传承孔子的千年理念,...