type
status
date
slug
summary
tags
category
icon
password
options Api 的缺点
实现某一个内容需要把各个逻辑拆分到不同属性中。因为每一个内容都需要卸载不同的属性中,导致可读性很差,逻辑分散
composition Api 的优势
可以通过钩子函数解决逻辑分散的问题
Setup
组合式 setup
- 可以配合曾经的vue2的options api 一起使用。
- 其返回值 相当于 vue2 的 data()返回值,不同的是setup需要把 数据和方法 一同返回
script setup
- 是一种setup的语法糖,用于简化
setup()
函数操作
- 不需要写返回值,只需要加一个setup标签即可,但是不可以和src属性同时使用
响应式数据
reactive
- 默认
deep
为true
所以如果不需要深层响应式,需要改为调用shallowReactive()
- 用
isReactive()
检查一个对象是否是由reactive()
或shallowReactive()
创建的代理。
响应式 API:核心 | Vue.js
Vue.js - 渐进式的 JavaScript 框架
https://cn.vuejs.org/api/reactivity-core.html#reactive
ref
- 接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性
.value
。
- 可以传入一个基本数据类型会直接转为
ref
对象,如果是对象类型内部会通过reactive()
进行处理。
- 与reactive一样也是
deep
为true
的,如果要避免深层需要使用shallowRef()
- 可以通过
unref
取出最后的数据如果参数是 ref,则返回内部值,否则返回参数本身
是一个语法糖,可以方便的进行取值。
isRef()
可以进行判断当前值是否是ref值
triggerRef()
可以强制把浅层的ref,改为深层
customRef()
自定义ref对象
readonly
响应式 API:核心 | Vue.js
Vue.js - 渐进式的 JavaScript 框架
https://cn.vuejs.org/api/reactivity-core.html#readonly
- 可以输入一个响应式对象,可以是
reactive
或者ref
,返回一个原值的只读代理值。
- 要避免深层级的转换行为,请使用
shallowReadonly()
作替代。
isReadonly()
判断是否为只读对象
computed
与
vue2
中computed
使用方法基本一致。语法略有区别,使用时需要从vue中引入该方法响应式 API:核心 | Vue.js
Vue.js - 渐进式的 JavaScript 框架
https://cn.vuejs.org/api/reactivity-core.html#computed
watch
- 可以去侦听特定的值,可以是ref 或者 reactive。如果是reactive的话,会默认深度监听。
- 可以通过返回值stop进行取消
- 可以对并发请求进行取消
- 是惰性的,第一次不会被使用,数据改变后才会调用
watchEffect
- 在该函数中使用的数据,会自动进行监听。
- 并不是惰性的,第一次就会调用,当前值可能是null
- 返回值可以停止监听
- 同样回调函数中,可以进行取消操作。在下一次执行完,会优先进行取消,在执行下一次
生命周期钩子
基本与optionApi中一致。语法使用on开头。
provide inject
vue hooks
可以参考下面的源码
自定义指令
自定义指令:更多还是抽取组件。一般是dom元素进行操作时会进行自定义指令的抽取
teleport
一般用于制作model框
vue插件
使用较少,为高阶属性。普通开发基本用不到
- 作者:yingwinwin
- 链接:https://yingwinwin.top/21dbde2e7b5e4824bfa4bfb12c9e6c69
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章