Vue3 学习第一天笔记

939 阅读2分钟

学完之后写一个todolist

createApp

用来创建vue实例,传入的参数是一个config对象

setup

  1. 是compositionAPI的入口,使用compositionAPI可以将处理同一功能代码聚合在一起,可以在任意vue组件中复用
  2. setup是props数据被解析完毕,组件创建之前生成的。
  3. setup内部无法通过this获取组件实例
  4. 第一个参数是props,props响应式数据不能被结构,第二个参数 context: attrs,emit,slots
  5. setup钩子组件实例没有创建,也无法访问data,computed,methods
  6. setup里this指向的是undefined
  7. setup返回值是一个对象 {}

setup 周期函数钩子的使用

de47ffc552741f2df6af2f5a4c63a8eca50a9d3071c57870c62fad72b4856589.png

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 拿去

github.com/zelixag/vue…

你现在能用这些玩意写出一个todolist吗(评论区来个github链接) todolist来了,欢迎把玩