Vue高级特性

70 阅读1分钟
  1. 自定义v-model 案例:颜色选择器
  2. $nextTick
  • vue是异步渲染、data改变后,DOM不会立即渲染,$nextTick会在DOM渲染后被触发
  • 页面渲染时,会将data的修改整合,多次data修改只会渲染一次
  1. slot插槽
  • 基本插槽
  • 作用域插槽
  • 具名插槽
  1. 动态组件:当不能确定渲染哪几个组件时,可以用动态组件
  2. 异步加载组件
  • 大组件:echarts 使用import()函数,按需加载
  • 头部 import加载
  • 在组件中:components{ FormDemo: ()=> import('../FormDemo') }
  1. keep-alive缓存组件
  • 缓存组件,Tab页,频繁切换,不需要重复渲染
  • mounted只执行一次, 不会销毁
  • 多了两个生命周期:activated deactivated
  • keep-alive是 vue内置的组件,通过vue本身的机制
  • v-show缓存,是通过css display:none
  1. mixin混入
  • 多个组件有相同的逻辑,抽离出来
  • mixin并不完美,会有一些问题, Vue3提出的CompositionAPI可以解决这些问题
  1. mixin存在的问题:
  • 对象来源不明确,容易造成混乱
  • 多个mixin会造成命名冲突,data中的属性
  • mixin和组件可能出现多对多的关系,复杂度较高