vue、nuxt性能优化

一、ios

Vue 会经过 Object.defineProperty 对数据进行劫持,来实现视图响应数据的变化,然而有些时候咱们的组件就是纯粹的数据展现,不会有任何改变,咱们就不须要 Vue 来劫持咱们的数据,在大量数据展现的状况下,这可以很明显的减小组件初始化的时间,那如何禁止 Vue 劫持咱们的数据呢?能够经过 Object.freeze 方法来冻结一个对象,一旦被冻结的对象就不再能被修改了。

做者:我是你的超级英雄
连接:https://juejin.im/post/5d548b83f265da03ab42471d
来源:掘金
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。
export default {
  data: () => ({
    users: {}
  }),
  async created() {
    const users = await axios.get("/api/users");
    this.users = Object.freeze(users);
  }
};

  二、Vue 组件销毁时,会自动清理它与其它实例的链接,解绑它的所有指令及事件监听器,可是仅限于组件自己的事件。 若是在 js 内使用 addEventListene 等方式是不会自动销毁的,咱们须要在组件销毁时手动移除这些事件的监听,以避免形成内存泄露,如:axios

created() {
  addEventListener('click', this.click, false)
},
beforeDestroy() {
  removeEventListener('click', this.click, false)
}

相关文章
相关标签/搜索