Vue面经27道

54 阅读2分钟

API写法

1.选项式API和组合式API(重点讲选项式API)

1.1 选项式API(Options API)

1.1.1 选项式API的特性

image.png 选项式API示例:
image.png

1.1.2 选项式API的痛点:

如果一个组件中 有两个功能模块 需要实现,data和methods,computed 中都有这两个模块的功能代码, 则维护起来比较吃力

image.png

1.2 组合式API(Composition API)

image.png

1.2.1 组合式API的基本结构

export default {
  // 1. 基本信息
  name: 'ComponentName',
  components: { /* 子组件 */ },
  mixins: [ /* 混入 */ ],
  extends: BaseComponent,
  
  // 2. 数据相关
  data() { return {} },
  computed: { /* 计算属性 */ },
  watch: { /* 监听器 */ },
  
  // 3. 方法
  methods: { /* 方法 */ },
  
  // 4. 生命周期钩子
  beforeCreate() {},
  created() {},
  beforeMount() {},
  mounted() {},
  beforeUpdate() {},
  updated() {},
  beforeUnmount() {},  // Vue3
  unmounted() {},      // Vue3
  
  // 5. 其他选项
  props: { /* 属性 */ },
  emits: { /* 事件 */ },
  provide() { return {} },
  inject: [],
  directives: { /* 自定义指令 */ }
}

1.2.2 Vue提供了语法糖,省略了setup的包裹

1.3 区别

image.png

image.png

2 响应式API==>ref()与reactive()

image.png

2.1 ref()

image.png

2.2 reactive()

image.png

2.3 ref与reactive的区别

image.png

3 computed:计算属性

image.png

3.1 解释一下派生值

image.png

3.2 解释一下缓存

缓存:只要依赖没有变化,则不会重新执行计算函数==>减小性能 举例:使用method和computed实现同一功能

3.2.1 method

image.png

3.2.2 computed

image.png

image.png 代码示例: image.png

4.watch:侦听变化

image.png

4.1 watch示例:

image.png

4.2 副作用 = 除了返回结果之外,还对外部世界产生影响的操作。

image.png

Vue的响应式的陷阱

1.解构失败

image.png

1.1改进:更改属性,而不是直接解构赋值

即能成功赋值,还能保留响应式 image.png

1.2 使用toRefs保持响应式

使用toRefs(Vue提供),即能成功赋值,还能保留响应式 image.png

2. 新增属性是否响应?

image.png

2.1 改进做法

初始化时就将结构定义清楚

image.png

3. ref对象的整体替换

image.png

4.数组索引赋值问题

vue2不会更新,但vue3会自动更新 image.png 使用splice方法(可在vue2中实现): 解释:在索引为2的地方删除1个元素,再插入999 image.png