当数据发生变化的时候vue实例中的方法都会执行一遍吗

来源:3-4 计算属性,方法与侦听器

wykun

2018-06-29

视频中所讲,当data中的一个值发生改变的时候,不管方法中有没有依赖这个data里面的值都会计算一遍,我想问的是只有view调用的方法才会执行还是说所有实例中的方法都会执行一遍?像有的方法是放在mounted中获取ajax数据的.监听data的变化从而重新执行方法是如何界定的呢?

写回答

3回答

于曼丽

2018-07-17

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 生命周期函数。建议你重新认真学一遍生命周期函数那节内容

2
1
wykun
非常感谢!
2018-07-17
共1条回复

Dell

2018-07-01

你问的这个问题有点大,能不能拆成几个具体的问题。当data发生变化时,updated,beforeUpdated这样的生命周期函数会被调用,同时,computed里面的计算内容如果data发生变化都会重新计算的。

0
0

wykun

提问者

2018-06-29

补充一下,页面重新渲染,fullName的方法就会重新执行一次,那我修改了data数据,那么所有的方法(包括生命周期调用的方法)都会重新执行一次吗

0
0

Vue2.5-2.6-3.0开发去哪儿网App 零基础入门到实战

课程紧跟Vue3版本迭代,企业主流版本Vue2+Vue3全掌握

10675 学习 · 8191 问题

查看课程