当数据发生变化的时候vue实例中的方法都会执行一遍吗
来源:3-4 计算属性,方法与侦听器
wykun
2018-06-29
视频中所讲,当data中的一个值发生改变的时候,不管方法中有没有依赖这个data里面的值都会计算一遍,我想问的是只有view调用的方法才会执行还是说所有实例中的方法都会执行一遍?像有的方法是放在mounted中获取ajax数据的.监听data的变化从而重新执行方法是如何界定的呢?
3回答
-
data 改变的时候,会重新渲染页面模板,只要是模板中调用了的方法,该方法就会重新执行,模板中没调用的方法不会执行。
<template>
<div>
{{ foo() }}
</div>
</template>
<script>
export default {
data () {
age: 20
},
methods: {
foo () {
console.log('This is foo')
},
bar () {
console.log('This is bar')
}
}
}
</script>
上面的例子中,当修改 age 的时候,页面重新渲染,只有 foo() 方法会重新调用,bar() 不会调用
另外你说的 mounted 这个是生命周期函数,不是 methods 函数,methods 函数是需要你在模板中手动调用才会执行的,比如上面的 foo(),而生命周期函数不需要你在模板中手动调用,而是在特定的时间点框架会自动调用。不同的生命周期函数自动调用的时间点不同,比如 mounted 只有在页面第一次渲染的时候才会调用,当修改数据导致页面重新渲染的时候,不会调用 mounted 生命周期函数,而会调用 updated 生命周期函数。建议你重新认真学一遍生命周期函数那节内容
212018-07-17 -
Dell
2018-07-01
你问的这个问题有点大,能不能拆成几个具体的问题。当data发生变化时,updated,beforeUpdated这样的生命周期函数会被调用,同时,computed里面的计算内容如果data发生变化都会重新计算的。
00 -
wykun
提问者
2018-06-29
补充一下,页面重新渲染,fullName的方法就会重新执行一次,那我修改了data数据,那么所有的方法(包括生命周期调用的方法)都会重新执行一次吗
00
相似问题