收藏
回答

为什么小程序的组件中data属性不是一个函数?

我们知道在Vue中,组件的data属性必须是一个函数返回一个对象。这是为了保证每个组件实例的数据是隔离的。那么为什么小程序的组件中data属性明明不是函数,也能做到是隔离的呢?

最后一次编辑于  2021-04-01
回答关注问题邀请回答
收藏

1 个回答

  • LeeJim
    LeeJim
    2020-05-07

    因为vue是直接劫持了data的getter和setter,所以可以用this直接设置,因此data需要隔离

    而小程序每次设置只能通过setData来设置

    2020-05-07
    有用
    回复 1
    • ガオミン
      ガオミン
      2020-05-07
      你说的有道理,但是并没有解决问题,不过也提醒到我了。因为React中也是采用this.setState来修改数据的。而React的类组件是可以实例化的,自然会得到不同的this.state。但是Vue和小程序都是采用对象的形式来声明组件。所以 Vue 强制要求组件的data必须是函数。那么我猜测小程序的组件在实例化的时候,内部必然有深拷贝data的过程。否则data就变成所有组件实例共享了。您觉得呢?
      2020-05-07
      回复
登录 后发表内容
问题标签