【问题标题】:Watch Property Doesn't work in VuejsWatch 属性在 Vuejs 中不起作用
【发布时间】:2018-08-23 05:18:16
【问题描述】:

我开始学习 Vuejs,在工作中我尝试测试 Watch 属性,但它对我不起作用,你能告诉我下面的代码有什么问题吗?

<div id="k2c">
    Kilometers : <input v-model= "Kilometers">
    Meters : <input v-model = "Meters"> 
</div>
<script type="text/javascript"> 
    var vr = new Vue({ 
        el:'#k2c',
        data:{
            Kilometers: 0;
            Meters : 0;
        },

        methods:{

        },
        computed:{
        },
        watch : {
            Kilometers : function(val){   
                this.Kilometers = val;
                this.Meters = val * 1000;  
            },    
            Meters : function(val){
                this.Kilometers = val / 1000;
                this.Meters = val;
            }
        }
    });
</script>

【问题讨论】:

    标签: javascript vue.js frameworks vuejs2 frontend


    【解决方案1】:

    您正在改变观察者内部的属性。不要,没必要。除此之外,您还有其他问题(请参阅下面的 cmets)。

    推荐阅读:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Basics

    <script src="https://unpkg.com/vue"></script>
    <div id="k2c">
      Kilometers : <input v-model="Kilometers">
      Meters : <input v-model="Meters">
    </div>
    <script>
    var vr = new Vue({
      el: '#k2c',
      data: {
        Kilometers: 0,          // replaced ; with ,
        Meters: 0               // removed ; here
      },
      methods: {
    
      },
      computed: {},
      watch: {
        Kilometers: function(val) {
          //this.Kilometers = val;         // commented out this line, you should remove it
          this.Meters = val * 1000;
        },
        Meters: function(val) {
          this.Kilometers = val / 1000;
          //this.Meters = val;             // commented out this line, you should remove it
        }
      }
    });
    </script>

    注意:您的两个计算属性具有循环依赖关系(更改一个会更改另一个,反之亦然)。目前这不是问题,因为它们的值收敛。如果这没有发生,您会收到 stackoverflow 错误。

    【讨论】:

    • 改变观察者内部的属性不是必须的问题,但在这种情况下,确实不需要。但是,数据中的分号才是真正的问题
    • 谢谢,问题是使用';'象征。我使用了训练 PHP 并在每行末尾放 ';'是必要的工作结束,离开这种态度并不难。
    猜你喜欢
    • 1970-01-01
    • 2023-01-20
    • 2019-09-30
    • 2020-06-03
    • 2015-04-14
    • 2014-06-28
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多