Vue3那些实用但是你不知道的知识~

Vue3之setup组合api

01 setup组合api的特点:

  1.  更加直观,接近原生js
  2.  按需加载
  3. 没有this,降低了耦合性,提高复用性 

02 setup()方法

相当于created生命周期,需要 return 返回,在模板中使用。

setup编写的代码更加直观,接近原生js

03 ref 值类型 响应式数据

在setup访问count值,count.value 来访问

const count = ref(5)

可以作为dom引用

const inp  = ref(null)
<p ref="inp">
inp.value.innerText

04 reactive 引用类型 响应式

// 定义个引用类型响应式数据 默认值是[...]
const list = reactive(["Vue", "React", "Angular"])

错误做法: list = xxx  直接赋值破坏了引用
正确做法: list.push(xxx)

05 watch监听数据

watch("count",(nval,oval)=>{
   //执行回调函数
})

06 watchEffect 监听效果

只要回调引用的数据变化都会执行watchEffect回调函数

// 只有list发生变化,或者count发生变化 存储localStorege
const stop = watchEffect(()=>{
   localStorage.setItem("count",count.value)

})

stop 用来停止监听,执行stop()方法

07 computed 计算

从现有数据计算出新的数据

//从现有的count值x2 返回
computed(“count2”,()=>count.value*2)

// 获取值得返回count的值
computed(“age”,{
   get(){ return count.value},
   set(v){count.value = v}
})

08 生命周期

setup组合api的生命周期中没有created,默认setup中相当于created,需要在原有生命周期添加on

onBeforeMount 挂载前

onMounted 挂载完毕

onBeforeUpdate 更新前

onUpdated 更新完毕

onUnMount 卸载前

onUnMounted 卸载完毕

09 全局配置

app.config.globalProperties.xxx = yyy

10 getCurrentInstance获取当前实例

非必要不推荐使用(this)

const app  =getCurrentInstace().appContext

const xxx = app.config.globalPropertites.xxx
 //获取到全局的而方法

11 setup使用vuex

import {useStore} from ‘vuex’
const store = useStore()

store.commit("user/addScore" ,v)

12 setup 使用路由

import {useRouter,useRoute} from 'vue-router'

const router = useRouter();
const route = useRoute()
//等同于this.$router 和this.$route

13 setup(props,context)参数

props 传入参数 (响应式)

context参数包含:attrs 属性,emit 事件发送器(同$emit),slots 插槽 同$slots,expose 暴露数据

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值