Vue计算方法methods和计算属性computed对比
2020-07-12 16:54
190 查看
当我们想要显示data中没有声明的变量时,可使用methods里的方法或者computed里的属性去人为计算获得.
比如,我们想要获得用户全名,但是data里并没有直接定义全名,只定义了firstName, lastName. 那么我们可以自己在methods内部定义方法去计算出该用户全名,或者在computed里计算出用户全名属性值.
以下代码,是通过methods内部定义的方法获得了用户全名:
<div id="app"> <p>{{getFullName()}}</p> <p>{{getFullName()}}</p> <p>{{getFullName()}}</p> </div> <script src="../js/vue.js"></script> <script> let app = new Vue({ el:'#app', data:{ firstName:"Gates", lastName:"Bill" }, methods:{ getFullName:function(){ console.log("firstName"); return this.firstName+' '+this.lastName; } } }); </script>
以下代码是通过computed属性去获取全名:
<div id="app"> <p>{{fullName}}</p> <p>{{fullName}}</p> <p>{{fullName}}</p> </div> <script src="../js/vue.js"></script> <script> let app = new Vue({ el:'#app', data:{ firstName:"Gates", lastName:"Bill" }, computed:{ fullName:function(){ console.log(this.firstName); return this.firstName+' '+this.lastName; } } }); </script>
**可以看到,以上两种方法都可以将计算出的用户全名完整显示出来. 但是methods里的getFullName函数被调用三次.computed里的属性只被调用一次.
由此得出:计算方法不会进行缓存.而计算属性会进行缓存,如果多次使用时,计算属性只会被调用一次.
当数据不发生改变时,computed里的fullName会被Vue内部缓存起来.只有当数据发生改变,才会再次调用fullName
**
相关文章推荐
- Vue的计算属性computed、方法methods、侦听器watch的区别
- vue 计算属性computed和观察watch 和方法methods
- 【Vue】零基础学习Vue: 第13课 Watch侦听属性、计算属性缓存computed、方法methods的区别
- vue的 计算属性(computed)、methods、watched三者区别
- Vue1.0学习总结(3)———vue1.0的生命周期、vue计算属性computed的使用、vue实例(vm)上方法总结、vue结合动画使用
- Vue.js计算机属性computed和methods方法详解
- vue计算属性computed的使用方法示例
- 【Vue】零基础学习Vue: 第12课 Vue计算属性computed与methods环境的区别
- Vue中computed(计算属性)、methods、watch的区别
- vue中计算属性(computed)、methods和watched之间的区别
- Vue计算属性(computed)、methods、watched三者区别
- 计算属性(computed)、方法(methods)和侦听属性(watch)的区别与使用场景
- vue计算属性computed和methods的区别
- Vue学习笔记3.5 计算属性computed中的 get方法和set方法
- Vue中computed(计算属性)、methods、watch的区别
- vue.js 计算属性及计算属性(computed)、methods、watched三者区别
- vue的计算属性(computed)、methods、watched三者区别
- Vue中methods(方法)、computed(计算属性)、watch(侦听器)的区别
- vue的计算属性的set方法--几乎不用,了解就行
- vue计算属性的使用和vue实例的方法