美文网首页
Vue 组件通信(双向绑定)

Vue 组件通信(双向绑定)

作者: 伍源辉 | 来源:发表于2017-02-08 11:48 被阅读102次
    <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>
    

    参考:如何在Vue2中实现组件props双向绑定

    相关文章

      网友评论

          本文标题:Vue 组件通信(双向绑定)

          本文链接:https://www.haomeiwen.com/subject/uuuvittx.html