vue

ZShuai
1 min

# vue

# 你了解的 MVVM

全称Model-View-ViewModelModel 表示数据模型层; view 表示视图层; ViewModelViewModel 层的桥梁,数据绑定到 viewModel 层并自动渲染到页面中,视图变化通知 viewModel 层更新数据。

# vue 是如何实现响应式数据

Vue2:Object.defineProperty 重新定义 data 中所有的属性, Object.defineProperty 可以使数据的获取与设置增加一个拦截的功能,拦截属性的获取,进行依赖收集。拦截属性的更新操作,进行通知。

# vue 中是如何检测数组变化

也是使用 object.defineProperty 重新定义数组的每一项,函数劫持的方式,重写了数组 7 个方法, pop 、 push 、 shift 、 unshift 、 splice 、 sort 、 reverse ,具体就是更改了数组的原型,用户调数组的这些方法的时候,通知视图去更新。

vue3:改用 proxy ,可直接监听对象数组的变化。

# vue 的性能优化

  • 事件代理
  • keep-alive
  • 拆分组件
  • key 保证唯一性
  • 路由懒加载、异步组件
  • 防抖节流
Last Updated: 2/10/2023, 6:53:47 AM