美文网首页
计算属性和观察者

计算属性和观察者

作者: 66pillow | 来源:发表于2017-09-06 17:38 被阅读0次

    1.计算属性

    为避免模板内嵌表达式过于复杂应使用计算属性代替

    <div>{{myMessage}}</div>
    
    var app = new Vue({
        el: "#app",
        data: {
            message: "lulu"
        },
        computed:{
            //声明一个计算属性myMessage
            myMessage: function () {
                //声明依赖message,易于测试推理
                return this.message.toUpperCase();
            }
        }
    });
    
    • 计算属性基于其依赖进行缓存,只有在依赖发生改变时才会重新求值,优于使用method
    • 当有一些数据需要随其他数据变动时,优于使用watch

    计算属性默认只有getter,但也可以添加setter

    var app = new Vue({
        el: "#app",
        data: {
            message: "lulu",
        },
        computed: {
            myMessage: {
                // getter
                get: function () {
                    return this.message.toUpperCase();
                },
                // setter
                set: function (newValue) {
                    this.message = newValue;
                }
            }
        }
    });
    //设置计算属性myMessage导致message更新
    app.myMessage = "lululu";
    

    2.观察者watch

    Vue通过watch提供一个更通用的方法,响应数据变化

    
    var app = new Vue({
        el: "#app",
        data: {
            message: "",
            searchKey: ""
        },
        watch: {
            //searchKey变化就会执行函数
            searchKey: function (newValue) {
                this.message = "Waiting...";
                //一个异步或开销较大的操作,计算属性无法做到
                this.search();
            }
        },
        methods: {
            search: _.debounce(function(){
            }, 500)
        }
    });
    

    相关文章

      网友评论

          本文标题:计算属性和观察者

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