时间:2021-05-26
本文实例讲述了Vue计算属性与侦听器用法。分享给大家供大家参考,具体如下:
vue之所以加载速度非常块,是因为在数据改变时,它并不是将所有组件都刷新,而是在重用代码的基础上对发生改变的地方进行渲染。同时,还得益于计算属性的使用:
1、计算属性
像绑定普通属性一样在模板中绑定计算属性。例如reverseName属性依赖于firstName和lastName,当firstName或lastName发生改变时,依赖于它的 reverseName 也会更新。
利用函数方法也可以实现类似的效果,不同的是计算属性是基于它们的依赖进行缓存的。只有在它的相关依赖发生改变时才会重新求值。这就意味着只要 firstName 还没有发生改变,再次访问 reversedName 计算属性会立即返回之前的计算结果,而不必再次执行函数。相比之下,每当触发重新渲染时,调用方法将总会再次执行函数.
为什么需要缓存?假设我们有一个性能开销比较大的的计算属性 A,它需要遍历一个巨大的数组并做大量的计算。然后我们可能有其他的计算属性 B 依赖于 A 。如果使用函数,每获得一次B就要调用一次函数进行计算,造成很大开销!
计算属性默认为get方法,也可以设定set方法,接收传入处理数据。例如传入originalName,set方法对其进行拆解并复制给firstName与lastName,并引起firstName与lastName改变,调用get()方法。
<div id="app"> <p>{{originalName}}</p> <p>{{reverseName}}</p> <button @click="deal()">反转名字</button></div>let vue=new Vue({ el:'#app', data:{ firstName:'', lastName:'', originalName:"super tory" }, methods:{ deal(){ this.reverseName=this.originalName; } }, computed:{ //计算属性钩子 reverseName:{ set(string){ //通过set方法对传入参数this.originalName进行操作 let name=string.split(' '); this.firstName=name[1]; this.lastName=name[0]; }, get(){ //通过get方法返回值 return this.firstName+' '+this.lastName; } } }});2、侦听器watch
在Vue中提供一个钩子,侦听data中的某个变量是否改变,如果改变则执行响应函数。
<div id="app2"> <input v-model="listen"></div>let vue2=new Vue({ el:'#app2', data:{ listen:'' }, watch:{ //定义侦听器钩子 listen:function () { //定义函数侦听listen的变化 console.log("input内容发生改变"); } }});希望本文所述对大家vue.js程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.计算属性和侦听器1.1计算属性{{message}}{{reversedMessage}}newVue({el:'#app',data:{message:'
前言本文非vue教程,仅为学习vue过程中的个人理解与笔记,有说的不正确的地方欢迎指正讨论1、computed计算属性函数中不能使用vm变量在计算属性的函数中,
响应式侦听和计算有时我们需要依赖于其他状态的状态——在Vue中,这是用组件计算属性处理的,以直接创建计算值,我们可以使用computed方法:它接受getter
本文实例讲述了js中getter和setter用法。分享给大家供大家参考,具体如下:在学习Vue计算属性时,有一句“计算属性默认只有getter,不过在需要时你
本文为大家分享了Vue计算属性的学习笔记,供大家参考,具体内容如下①模板内的表达式实际上只用于简单的运算,对于复杂逻辑,使用计算机属性。②基础例子:Origin