• vue(七)--监听属性(watch)


    1.watch:用来监听每一个属性的变化
    2.watch这个对象里面都是函数,函数的名称是data中的属性名称,watch中的函数不需要调用
    3.当属性发生改变那么就会触发watch函数,每个函数都会接受两个值,一个是新值,一个是旧值
    4.我们可以在watch当中就行新旧值的判断来减少虚拟dom的渲染
    eg:
    watch:{
        a(newVal,oldVal){
        if(newVal != oldVal){
            this.sum = newVal+this.b;
        }
        console.log("a发生了改变",newVal,oldVal)
    }
    5.只要是当前的属性值发生改变就会触发它所对应的函数
    6.如果我们需要对对象进行监听的时候需要将属性值设置为key值,val值为一个对象,对象中有两个参数是必填,一个是handler函数,一个是deep为true,这样才能实现深度监听
    eg:
    obj:{
        handler(newVal){
        console.log("obj发生了改变",newVal)
        },
        deep:true
    }
     
    demo:
     <div id = "computed_props">
             千米 : <input type = "text" v-model = "kilometers">
             米 : <input type = "text" v-model = "meters">
          </div>
           <p id="info"></p>
          <script type = "text/javascript">
             var vm = new Vue({
                el: '#computed_props',
                data: {
                   kilometers : 0,
                   meters:0
                },
                methods: {
                },
                computed :{
                },
                watch : {
                   kilometers:function(val) {
                      this.kilometers = val;
                      this.meters = this.kilometers * 1000
                   },
                   meters : function (val) {
                      this.kilometers = val/ 1000;
                      this.meters = val;
                   }
                }
             });</script>

  • 相关阅读:
    HTTP断点续传 规格严格
    Java Shutdown 规格严格
    linux 命令源码 规格严格
    JTable调整列宽 规格严格
    linux 多CPU 规格严格
    Hello can not find git path 规格严格
    Kill 规格严格
    拜拜牛人 规格严格
    Swing 规格严格
    Debugging hangs in JVM (on AIX but methodology applicable to other platforms) 规格严格
  • 原文地址:https://www.cnblogs.com/crazy-lc/p/12248717.html
Copyright © 2020-2023  润新知