Skip to content
大纲

Vue 知识串记

  1. Vue 的核心
  • 声明式渲染
  • 响应性
  1. API 风格: 选项式、组合式
  2. 初始化 Vue3 项目: npm init vue@latest, 会执行 create-vue
  3. Vue 相关性能优化
    • web.dev 指南(无关框架的优化)
    • 页面加载优化
      • 正确的架构: SPA、SSG、SSR
      • tree shaking
      • code-spliting 懒加载
    • 更新优化
      • 保持 prop 的稳定性
      • v-once
      • v-memo
    • 通用优化
      • 虚拟列表
      • 减少大型不可变数据的响应性开销
      • 避免不必要的组件抽象
  4. DOM 的更新并不是同步的
  5. ref 的自动解包
    • 模板中作为顶层属性被访问时
    • reactive 对象的属性被访问时, 但 reactive 数组或 Map 的项不会
  6. computed 返回一个 computedRefImpl 实例, 会有缓存, 不应有任何副作用
  7. Vue 3 的 <template> 如果上面没有 v-if、v-for 会真实渲染成 <template> 标签, Vue2 不会
  8. v-if 和 v-show 的区别就是 v-if 是真正的移除增加 DOM, 而 v-show 是通过 CSS 的 display 来控制显示与隐藏的
  9. 不推荐同一元素上使用 v-if 和 v-for, 但是如果用了, Vue3 的 v-if 优先级更高, Vue2 的 v-for 优先级高
  10. key 管理状态, 要合理使用 key 属性
  11. 生命周期
    • setup
    • beforeCreate
    • created
    • beforeMount
    • mounted
    • beforeUpdate
    • updated
    • beforeUnmount(Vue2: beforeDestroy)
    • unmounted (Vue2: destroyed)
  12. 模板引用: 同名的 ref, 也可以是一个函数, v-for 的时候还可以是一个数组
  13. SFC 单文件组件规范组件建议使用 PascalCase 名称
  14. 常用:
    • setup(props, {attrs, slots, emit, expose})
    • const props = defineProps()
    • const emit = defineEmits()
    • const attrs = useAttrs()
  15. Vue 遵从单向数据流
  16. 事件的校验可传入一个对象, 事件可以被赋值为一个函数
  17. $attrs 保留原始名, 然后事件前面加 on, 如 onClick
  18. 插件本质上就是一个拥有 install 方法的对象或函数, install 方法的第一个参数是 app, 第二个参数是传递给 app.use() 方法的额外参数 options
  19. 自定义指令: const vFocus = {...}

Vue Router

  1. 模式: History、Hash、Memory (手写一下原理)
  2. 和 keep-alive 结合
  3. 路由守卫、结合 元数据, 比如做一些鉴权
  4. VueRouter4 新增的动态路由, 也就是可以增加或者是删除一些路由

https://segmentfault.com/a/1190000037540533

路线

VueRouter -> Vuex -> Pinia -> Vue TypeScript -> 算法 CSS -> HTTP -> JS

Mochi's personal blog.