type
status
date
slug
summary
tags
category
icon
password
options Api 的缺点
实现某一个内容需要把各个逻辑拆分到不同属性中。因为每一个内容都需要卸载不同的属性中,导致可读性很差,逻辑分散
composition Api 的优势
可以通过钩子函数解决逻辑分散的问题

Setup

组合式 setup

  1. 可以配合曾经的vue2的options api 一起使用。
  1. 返回值 相当于 vue2 的 data()返回值,不同的是setup需要把 数据和方法 一同返回

script setup

  1. 是一种setup的语法糖,用于简化 setup() 函数操作
  1. 不需要写返回值,只需要加一个setup标签即可,但是不可以和src属性同时使用

响应式数据

reactive

  1. 用于对象类型数据的响应式改造,返回一个代理对象,但是基本上可以被 ref 替代,建议使用 ref
  1. 默认 deeptrue 所以如果不需要深层响应式,需要改为调用 shallowReactive()
  1. isReactive() 检查一个对象是否是由 reactive() 或 shallowReactive()创建的代理。
  1. 将reactive转换为ref
    1. toRefs 对reactive对象进行结构,不会丢失其响应式,结构出来是一个ref对象
    2. toRef 对单个属性进行ref转换

ref

  1. 接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value
  1. 可以传入一个基本数据类型会直接转为 ref 对象,如果是对象类型内部会通过 reactive() 进行处理。
  1. 与reactive一样也是 deeptrue的,如果要避免深层需要使用shallowRef()
  1. 可以通过 unref 取出最后的数据 如果参数是 ref,则返回内部值,否则返回参数本身 是一个语法糖,可以方便的进行取值。
  1. isRef()可以进行判断当前值是否是ref值
  1. triggerRef() 可以强制把浅层的ref,改为深层
  1. customRef() 自定义ref对象

readonly

  1. 可以输入一个响应式对象,可以是reactive或者ref,返回一个原值的只读代理值。
  1. 要避免深层级的转换行为,请使用 shallowReadonly()作替代。
  1. isReadonly() 判断是否为只读对象

computed

vue2computed使用方法基本一致。语法略有区别,使用时需要从vue中引入该方法

watch

  1. 可以去侦听特定的值,可以是ref 或者 reactive。如果是reactive的话,会默认深度监听。
  1. 可以通过返回值stop进行取消
  1. 可以对并发请求进行取消
  1. 是惰性的,第一次不会被使用,数据改变后才会调用

watchEffect

  1. 在该函数中使用的数据,会自动进行监听。
  1. 并不是惰性的,第一次就会调用,当前值可能是null
  1. 返回值可以停止监听
  1. 同样回调函数中,可以进行取消操作。在下一次执行完,会优先进行取消,在执行下一次

生命周期钩子

基本与optionApi中一致。语法使用on开头。

provide inject

vue hooks

可以参考下面的源码

自定义指令

自定义指令:更多还是抽取组件。一般是dom元素进行操作时会进行自定义指令的抽取

teleport

一般用于制作model框

vue插件

使用较少,为高阶属性。普通开发基本用不到
webpack基本使用Git使用快捷查询