学完之后写一个todolist
createApp
用来创建vue实例,传入的参数是一个config对象
setup
- 是compositionAPI的入口,使用compositionAPI可以将处理同一功能代码聚合在一起,可以在任意vue组件中复用
- setup是props数据被解析完毕,组件创建之前生成的。
- setup内部无法通过this获取组件实例
- 第一个参数是props,props响应式数据不能被结构,第二个参数 context: attrs,emit,slots
- setup钩子组件实例没有创建,也无法访问data,computed,methods
- setup里this指向的是undefined
- setup返回值是一个对象 {}
setup 周期函数钩子的使用
reactive 方法
输入: 普通对象
输出: 响应式对象
toRefs 方法
输入: 代理对象 (不是代理对象会出警告)
输出: 将代理对象的所有属性转化成响应式对象
- 实现原理
- 要求传入的对象必须是一个代理对象,如果不是一个代理对象则会出现警告
- 接下来toRefs会创建一个新的代理对象,然后遍历传入的代理对象的所有属性,把其所有属性都转化成响应式对象,然后挂载到新创建的对象上,然后是将新创建对象返回
- 会为代理对象的每一个属性创建一个带有value属性的对象,该对象是响应式的
- value属性是有getter和setter的,getter里面返回代理对象中对应属性的值,setter中给代理对象赋值,所以我们返回的每一个属性都是响应式的
ref
输入: 原始类型值
输出: 响应式对象
Computed
vue3中使用computed函数来创建计算属性。有两种或用法
- 第一种用法
computed(() => count.value + 1)
- 第二种用法
const count = ref(1)
const plusOne = computed({
get: () => count.value + 1,
set: val => {
count.value = val - 1
}
})
Watch
- Watch 的三个参数
- 第一个参数: 要监听的数据
- 第二个参数: 监听到数据变化后执行的函数,这个函数有两个参数分别是新值和旧值
- 第三个参数: 选项对象,deep 和 immediate
- Watch 的返回值
- 取消监听的函数
watchEffct
- 是watch函数的简化版本,也用来监视数据的变化
- 接受一个函数为参数,监听函数内响应式数据的变化
- 返回一个取消监听的函数
demo 拿去
你现在能用这些玩意写出一个todolist吗(评论区来个github链接) todolist来了,欢迎把玩