一、计算属性的使用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的值以后,会从新执行一次计算属性。