Vue:计算属性(使用、set和get方法、缓存)

一、计算属性的使用vue

(1)计算属性的基本运用缓存

<body>
<div id="app">
  {{message1}}{{message2}}<br>
  {{message1 + ' '+message2}}<br>
  {{getAll()}}<br>
  {{all}}
</div>
<script src="../js/vue.js"></script>
<script>
    <!--let定义的变量能够修改值/const定义的不可修改至关于常量-->
    const app=new Vue({
        el:"#app",//用于挂载要管理的元素
        data:{//定义数据
            message1:"hello Vue",
            message2:"zhai"
        },
        methods :{
            getAll(){
                return this.message1+this.message2
            }
        },
        computed:{
            all:function(){
                return this.message1+this.message2
            }
        }
    })
</script>
</body>

要想实现字符串的拼接,能够去除两个属性的值后进行拼接,也能够封装为函数,最后一种是经过计算属性的方式实现的app

(2)案例(计算商品的总价格)函数

  • 不使用计算属性,只能一个个取值而后相加
<div id="app">
    <h2>{{foods[0].price+foods[1].price+foods[2].price+foods[3].price}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
    <!--let定义的变量能够修改值/const定义的不可修改至关于常量-->
    const app=new Vue({
        el:"#app",
        data:{
          foods:[
              {id:1,price:33},
              {id:2,price:3},
              {id:3,price:23},
              {id:4,price:43}
          ]
        }
    })
</script>

 

二、计算属性的set和get方法this

(1)set和get方法spa

<body>
<div id="app">
  {{all}}
</div>
<script src="../js/vue.js"></script>
<script>
    <!--let定义的变量能够修改值/const定义的不可修改至关于常量-->
    const app=new Vue({
        el:"#app",//用于挂载要管理的元素
        data:{//定义数据
            message1:"hello Vue",
            message2:"zhai"
        },
        computed:{
            all:{
                set:function(){
                    console.log("hello")
                },
                get:function(){
                    return this.message1+this.message2
                }
            }
        }
    })
</script>
</body>

计算属性的set方法一半时不写的,get:也能够省略,默认执行的是get方法code

 

 

三、计算属性的缓存blog

(1)计算属性与函数的对比ip

  • 函数
<div id="app">
  {{getAll()}}<br>
  {{getAll()}}<br>
  {{getAll()}}<br>
  {{getAll()}}<br>
</div>
<script src="../js/vue.js"></script>
<script>
    <!--let定义的变量能够修改值/const定义的不可修改至关于常量-->
    const app=new Vue({
        el:"#app",//用于挂载要管理的元素
        data:{//定义数据
            message1:"hello Vue",
            message2:"zhai"
        },
        methods :{
            getAll(){
                console.log("a")
                return this.message1+this.message2
            }
        }
    })
</script>
</body>

  • 计算属性
<body>
<div id="app">
  {{all}}<br>
  {{all}}<br>
  {{all}}<br>
  {{all}}<br>
</div>
<script src="../js/vue.js"></script>
<script>
    <!--let定义的变量能够修改值/const定义的不可修改至关于常量-->
    const app=new Vue({
        el:"#app",//用于挂载要管理的元素
        data:{//定义数据
            message1:"hello Vue",
            message2:"zhai"
        },
        computed:{
            all:function(){
                console.log("-----")
                return this.message1+this.message2
            }
        }
    })
</script>
</body>

 

对于计算属性的方式,在内容没有变化的时候就会直接返回结果,而不是从新执行一次。 字符串

 

 上面从新设置message1的值以后,会从新执行一次计算属性。

相关文章
相关标签/搜索