本文介绍了从方法中只调用一种方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
限时删除!!
在本例中,我通过以下方法更改name
":
new Vue({el: '#锻炼',数据: {name: '彼得',},方法: {随机:函数(){返回 Math.random();},更改名称:函数(事件){this.name = event.target.value;}}})
<script src="https://unpkg.com/vue/dist/vue.js"></script><div id="锻炼"><p>VueJS 非常酷 - {{ name }}</p><p>{{random()}}</p><div><input v-on:input="changeName" type="text">
但是每次我调用方法 changeName
时,另一个方法(random
)也会被调用.
为什么?
解决方案
来自 计算属性 - 计算缓存 vs 方法:
相比之下,只要发生重新渲染,方法调用将始终运行该函数.
什么时候重新渲染?当数据发生变化时.
在您的示例中,每当您输入 <input>
(因为它调用 changeName
)时,数据(即 name
)都会发生变化.
查看生命周期图 - 更多具体来说,Mounted"红球:
查看下面的演示,您会看到那些生命周期事件正在发生(以及它们之间的重新渲染):
new Vue({el: '#锻炼',数据: {name: '彼得',},更新前(){console.log('beforeUpdate 执行');},更新() {console.log('更新执行');},方法: {随机:函数(){返回 Math.random();},更改名称:函数(事件){this.name = event.target.value;}}})
<script src="https://unpkg.com/vue/dist/vue.min.js"></脚本><div id="锻炼"><p>VueJS 非常酷 - {{ name }}</p><p>{{random()}}</p><div><input v-on:input="changeName" type="text">