主题
Vue
Vue3为什么要升级proxy?废弃Object.defineProperty?
Object.defineProperty
- 对data中每个属性重写getter和setter,新增或删除属性有时无法响应式
- 嵌套对象层级多了,需要一层层拦截,初始化慢,开销大
比喻:就像你要监控小区的每户人家,于是你把每家每户的门口都装了摄像头,一栋楼几十层上百户,全都要装; 结果后来又有人搬进来,没摄像头 → 你得补装,还麻烦。
proxy
- 在访问对象时,拦截所有操作
- 性能更好,按需代理
- 可扩展性更强
比喻: 就像你在小区大门口装了一个总闸监控,谁进谁出都能看见,新增的人、老住户、快递小哥,都一视同仁。 你只要盯着大门就能掌握所有动态。
路由守卫
主要是用来做拦截跳转判断是否有跳转权限
- 全局前置守卫: 用户在未登录时跳转登录
- 全局后置守卫: 跳转成功后记录用户访问日志
- 组件路由守卫: 检查用户是否有权限访问该组件
Composition API 与 React Hooks 的区别
调用不需要考虑顺序,可以再循环、条件、嵌套中使用
循环中key的作用
对数组节点的复用,不建议index作为key是因为节点移动会导致所有元素index都变化