vue computed什么时候执行

worktile 其他 71

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Vue.js是一个流行的JavaScript框架,它提供了一种响应式的数据绑定和组件化的方式来构建用户界面。在Vue中,computed是一种用于计算属性的方式。

    computed属性是基于Vue实例的响应式数据来生成的。它们的值会根据监听的依赖发生变化时动态更新,而不是每次访问时都重新计算。

    computed属性的更新时机是惰性的,即只有在计算属性所依赖的响应式数据变化时才会重新计算。这意味着只要计算属性所依赖的数据没有发生变化,computed属性就不会被重新计算。

    具体来说,computed属性的更新时机有以下几种情况:

    1. 当计算属性所依赖的响应式数据发生变化时,computed属性会立即重新计算并更新。

    2. 当计算属性所依赖的数据没有发生变化,但其他的计算属性依赖于这个计算属性时,它也会重新计算并更新。

    3. 当计算属性所依赖的数据没有发生变化,但显式地调用计算属性的时候,它也会重新计算并更新。

    总结起来,computed属性的执行时机是在它所依赖的响应式数据发生变化时。Vue会自动追踪并建立依赖关系,当依赖的数据变化时,计算属性会被重新计算并更新。这样可以有效地避免不必要的计算和提高应用的性能。

    需要注意的是,computed属性只会在需要的时候才计算,因此比起methods方法更具有性能优势。而且,computed属性的值会进行缓存,只有在依赖的数据发生变化时才会重新计算,而不是每次访问时都重新计算。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Vue中的computed属性是根据其依赖的响应式数据进行计算,并返回一个新的计算结果。computed属性的执行时间取决于其依赖的响应式数据的变化情况。

    1. 首次渲染:在Vue实例创建时,computed属性会立即执行一次,将计算结果传递给对应的视图进行渲染。

    2. 响应式数据变化:当computed属性所依赖的响应式数据发生变化时,computed属性会重新计算并获得新的计算结果。

    3. 依赖数据首次变化:当computed属性所依赖的响应式数据首次发生变化时,computed属性会立即重新计算一次,并将计算结果缓存起来。之后,只有当这些依赖数据发生新的变化时,computed属性才会重新计算。

    4. 计算属性被访问:当在模板或者JavaScript代码中访问computed属性时,computed属性会重新计算并返回计算结果。这样可以确保每次访问computed属性时都是最新的计算结果。

    5. 响应式数据依赖变化的“派发”:在某些情况下,computed属性的依赖数据可能在计算的过程中被修改,这会触发依赖数据的变化,从而导致computed属性被重新计算。在这种情况下,computed属性的执行顺序是不确定的,因为它取决于依赖数据的变化顺序。

    综上所述,Vue中的computed属性在首次渲染时会执行一次,并在其依赖的响应式数据发生变化时重新计算。此外,当computed属性被访问时,也会重新计算并返回最新的计算结果。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Vue中的computed是Vue实例的一个属性,它可以用来定义计算属性。computed属性是基于它的依赖缓存的,也就是说只有相关的依赖发生改变时,computed才会重新计算。当计算属性的依赖发生改变时,computed会自动更新值。

    那么,computed什么时候执行呢?computed的执行时机是在以下几种情况下:

    1.初始化时执行:当Vue实例创建时,computed会被初始化执行一次,用于计算初始值。在初始化时,Vue会遍历所有的computed属性,并初始化它们的值。

    2.依赖发生改变时执行:computed属性是基于它的依赖进行计算的,只有相关的依赖发生改变时,computed才会重新计算。所谓的相关依赖是指在computed函数中所引用的响应式数据。

    3.依赖的值被修改时执行:当computed依赖的响应式数据被修改时,computed会自动重新计算。这是因为Vue能够追踪依赖关系,并且知道当依赖发生改变时需要重新计算computed的值。

    4.其他触发条件:在一些特殊情况下,computed也会被执行。比如调用Vue实例的$forceUpdate方法,会强制刷新所有组件,包括computed;或者在watch监听computed的时候,当computed的值发生变化时,watch会被触发。

    需要注意的是,computed是一种惰性的求值,只有在需要时才会执行。Vue会智能地缓存computed的值,并且只在相关的依赖发生改变时才会重新计算。这种机制能够有效地避免不必要的计算和重复计算,提高性能和效率。

    使用computed能够方便地将一些复杂的逻辑计算封装成可复用的方法,使代码更加简洁和易读。在开发中,常常将一些需要实时计算的值定义为computed,例如计算总价、过滤、排序等操作。同时,由于computed具备缓存的特性,可以有效地避免计算的重复执行。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部