• 分别使用watch,computed属性计算两个数之和


    现在有个需求,给a一个input,b一个input ,然后用output标签显示两者计算之和

    有两种方法:一是使用监听属性,一种是使用computed属性计算。

    同时明白,Vue实例中的数据来源有两方面,一种是数据模型,一种是computed对象计算后返回的值

    法一:

    使用监听属性 :(数据来源于数据模型)

    <div id="app">
    {{msg}}
    <br>
    a :<input type="text" v-model.number="a">
    <!-- <br> -->
    
    +b <input type="text" v-model.number="b">
    <!-- <br> -->
    =
    <!-- <br> -->
    <output>{{total}}</output>
    </div>
        <script>
            new Vue({
                el:"#app",
                data:{
                    msg:"hello",
                    a:0,
                    b:0,
                    total:0
                },
                methods:{
                    
                },
                //监听 侦听
                watch:{
                    a(newValue,oldValue){
                        // console.log(newValue,oldValue);
                        this.total=this.a
                        +this.b;
                    },
                    b(newValue,oldValue){
                        // console.log(newValue,oldValue);
                        this.total=this.b+this.a;
    
                    }
                }
            })
        </script>
    </body>

    使用监听属性有点大材小用,因为监听属性大多用来监听在数据变化时执行异步或开销较大的操作,在这里只能略微了解一下它的作用。

    法二:

    使用computed对象(数据来源于计算属性)

    <body>
    <div id="app">
    {{msg}}
    <br>
    a <input type="text" v-model.number="a">
    +b <input type="text" v-model.number="b">
    =
    <output>{{total}}</output>
    </div>
        <script>
            new Vue({
                el:"#app",
                data:{
                    msg:"hello",
                    a:0,
                    b:0,
                },
                methods:{
                },
                computed:{
                        total()
                        {
                            return this.a+this.b;
                        }
                    }
              
            })
        </script>

    注意,当使用computed来进行计算时,数据模型中不需要再写入total变量名~

    计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。而每次调用函数都会导致函数的重新执行。

    以上就是该需求的两种计算方式。

  • 相关阅读:
    Java 8 ThreadLocal 源码解析
    RabbitMQ 消息中间件
    MySQL 索引与查询优化
    MySQL EXPLAIN 命令: 查看查询执行计划
    迎来送往,开启新篇章
    mockito的用法
    推荐一个计算机的科普视频
    Golang查缺补漏(一)
    2019定个小目标
    golang 中的指针
  • 原文地址:https://www.cnblogs.com/yangnansuper/p/13686195.html
Copyright © 2020-2023  润新知