Composition API 详解

Composition API 详解

Setup 函数
setup()函数是在created生命周期函数  被完全初始化之前执行的函数。通过ref()和reactive()函数的使用,可以完全替换掉以前的data{}语法形式。

基本语法:setup(props, context){return{name:'test'}}

Setup()函数特点
  • return 的内容,在模板中直接可以使用,包括变量和方法
  • 在 setup( )中不能使用 this 关键字

context 参数三个关键词:attrs、slots、emit

相关函数
  • ref()函数

    • 作用:把 setup 函数中不可响应的基础类型数据变成响应数据。
    • 使用前需要先引入:const {ref} = Vue;
    • 基础语法: let name = ref(“test”)
  • reactive()函数
    作用:把 setup 函数中不可响应的非基础类型数据变成响应数据。
    使用前需要先引入:const {reactive} = Vue;
    基础语法: const nameObj = reactive({name:'hello'})

  • readonly() 函数

    • 作用:在 setup()函数中把一个响应式引用变成只读属性,如果改变就会报错。
    • 使用前需要先引入:const {readonly} = Vue;
  • toRefs()函数

    • 把响应式数据进行解构返回,在模板中就可以直接使用了。
    • 使用前需要先引入:const {toRefs} = Vue;
    • 基础语法:const { name } = toRefs(nameObj)
  • computed()函数

    • 作用:随着一个变量的变化,而随之变化的方法,也叫计算函数/计算属性
    • 使用前需要先引入: const {computed} = Vue;
    • 基础语法:const countNew=computed(()=>{return count.value +5})
    • 内部方法 get:()=>{};set:()=>{}
  • watch()函数

    • 作用:对 setup 函数里某个值的变化进行监听,可以得到变化后的值和变化前的值。但它具备一定的惰性 lazy,也就是第一次不会执行,只有变化时才会执行。
    • 使用前需要先引入: const {watch} = Vue;
    • 基础语法:watch(name,(currentValue,prevValue)=>{console.log(currentValue,prevValue)})
    • 变成立即执行,增加第三个参数。immediate: true
  • watchEffect()函数

    • 和 watch()函数基本一样,但是它是立即执行,没有惰性 immediate。不需要传递侦听内容,自动感知代码依赖。数据有依赖才会执行里边的代码,如果没有依赖,就不会执行。
    • 和 Watch()函数的不同点: 1.立即执行,没有惰性 immediate 2.不需要传递侦听内容,自动会感知代码依赖,不需要传递很多参数,只要传递一个回调函数 3.不能获取之前数据的值
    • 使用前需要先引入: const {watchEffect} = Vue;
    • 基础语法:watchEffect(()=>{})
  • provide() 函数

    • 作用:在 setup 函数中向子组件或者孙子组件进行传值(可跨层级进行传值)。
    • 使用前需要先引入: const {provide} = Vue;
    • 基础语法:provide('name','test')
  • inject() 函数

    • 作用:在 setup 函数中接收父组件传递过来的值(可跨层级进行接受)。
    • 使用前需要先引入: const {inject} = Vue;
    • 基础语法:provide('name','hello') , hello 为传递值,不存在时的默认值
setup 中的生命周期函数

在使用这些函数前,都需要引入。

  • onBeforeMount()
    在 Vue 应用被挂载之前,自动执行的函数
  • onMounted()
    在 Vue 应用挂载完成之后,自动执行的函数
  • onBeforeUpdate()
    在数据发生变化之前,自动执行的函数
  • onUpdated()
    在数据发生变化之后,自动执行的函数
  • onBeforeUnmount()
    在组件销毁之前,自动执行的函数
  • onUnmounted()
    在组件销毁之后,自动执行的函数
  • onRenderTracked()
    在收集响应时依赖时,自动执行的函数
  • onRenderTriggered()
    每次页面渲染被触发时,自动执行的函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶落风尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值