非双向绑定数据

Mr.PDG小于 1 分钟

非双向绑定数据

长列表以及不需要数据劫持的场景

Vue 会通过 Object.defineProperty 对数据进行劫持,来实现视图响应数据的变化,然而有些时候我们的组件就是纯粹的数据展示,不会有任何改变,我们就不需要 Vue 来劫持我们的数据,在大量数据展示的情况下,这能够很明显的减少组件初始化的时间,那如何禁止 Vue 劫持我们的数据呢?

可以通过 Object.freeze() (冻结) 方法来冻结一个对象,一旦被冻结的对象就再也不能被修改了。或者可以用 Object.seal() (密封)

export default {
  data: () => ({
    users: {}
  }),
  async created() {
    const users = await axios.get("/api/users");
    this.users = Object.freeze(users);
  }
}