计算属性
<script>export default{ data(){ return{ test57: '57-6666', test56: 56 } }, computed:{ //计算属性 ,只有依赖值不变就不会从新计算。 reverseMsg:function (){ console.log("计算属性") return this.test57.split('').reverse().join('') } }, methods:{ reverseMessage:function (){ console.log("methods") return this.test57.split('').reverse().join('') } },};</script><template> <div> <p>{{test57}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>----下方为计算属性---</p><!-- 连()都不须要加--> <p>{{reverseMsg}}</p> <p>{{reverseMsg}}</p> <p>{{reverseMsg}}</p> <p>----下方为methods----</p> <p>{{reverseMessage()}}</p> <p>{{reverseMessage()}}</p> <p>{{reverseMessage()}}</p> </div></template><style> #d1{ color: red; } #d2{ color: blue; } .d1{ font-size: 50px; }</style>
computed只执行1次(只有依赖值不变,就不会从新计算而冲缓存中获取)
methods执行3次
计算属性批改原始值
<script>export default{ data(){ return{ test57: '57-6666', test56: 56 } }, computed:{ //计算属性 ,只有依赖值不变就不会从新计算。 reverseMsg:function (){ console.log("计算属性") return this.test57.split('').reverse().join('') } }, methods:{ reverseMessage:function (){ console.log("methods") return this.test57.split('').reverse().join('') } },};</script><template> <div> <p>{{test57}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>----下方为计算属性---</p><!-- 连()都不须要加--> <p>{{reverseMsg}}</p> <p>{{reverseMsg}}</p> <p>{{reverseMsg}}</p> <p>----下方为methods----</p> <p>{{reverseMessage()}}</p> <p>{{reverseMessage()}}</p> <p>{{reverseMessage()}}</p> <button @click="test57='hellokugou'">扭转test57</button> </div></template><style> #d1{ color: red; } #d2{ color: blue; } .d1{ font-size: 50px; }</style>
computed 会比 methods 进步了性能
计算属性 Setter
<script>export default{ data(){ return{ test57: '57-6666', test56: 56 } }, computed:{ //计算属性 ,只有依赖值不变就不会从新计算。 // reverseMsg:function (){ // console.log("计算属性") // return this.test57.split('').reverse().join('') // } reverseMsg:{ //每一个计算属性中都一个getter,setter,下面为简写,上面为完整版,计算属性为只读属性。 set:function (newValue){ //设置或更改计算属性时使,个别没有set办法 console.log(newValue) }, get:function (){ return this.test57.split('').reverse().join('') } } }, methods:{ reverseMessage:function (){ console.log("methods") return this.test57.split('').reverse().join('') } },};</script><template> <div> <p>{{test57}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>----下方为计算属性---</p><!-- 连()都不须要加--> <p>{{reverseMsg}}</p> <p>{{reverseMsg}}</p> <p>{{reverseMsg}}</p> <p>----下方为methods----</p> <p>{{reverseMessage()}}</p> <p>{{reverseMessage()}}</p> <p>{{reverseMessage()}}</p> <button @click="test57='hellokugou'">扭转test57</button> <button @click="reverseMsg='hellokugou'">扭转reverseMessage</button> </div></template><style> #d1{ color: red; } #d2{ color: blue; } .d1{ font-size: 50px; }</style>
给setter 赋值
<script>export default{ data(){ return{ test57: '57-6666', test56: 56 } }, computed:{ //计算属性 ,只有依赖值不变就不会从新计算。 // reverseMsg:function (){ // console.log("计算属性") // return this.test57.split('').reverse().join('') // } reverseMsg:{ //每一个计算属性中都一个getter,setter,下面为简写,上面为完整版,计算属性为只读属性。 set:function (newValue){ //设置或更改计算属性时使,个别没有set办法 console.log(newValue); this.test57=newValue }, get:function (){ return this.test57.split('').reverse().join('') } } }, methods:{ reverseMessage:function (){ console.log("methods") return this.test57.split('').reverse().join('') } },};</script><template> <div> <p>{{test57}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>{{test57.split('').reverse().join('')}}</p> <p>----下方为计算属性---</p><!-- 连()都不须要加--> <p>{{reverseMsg}}</p> <p>{{reverseMsg}}</p> <p>{{reverseMsg}}</p> <p>----下方为methods----</p> <p>{{reverseMessage()}}</p> <p>{{reverseMessage()}}</p> <p>{{reverseMessage()}}</p> <button @click="test57='hellokugou'">扭转test57</button> <button @click="reverseMsg='你好酷狗'">扭转reverseMessage</button> </div></template><style> #d1{ color: red; } #d2{ color: blue; } .d1{ font-size: 50px; }</style>