vue3中的需要注意的小细节

文章为博主自己学习时的一些笔记标注,如有意见不一致,烦请评论区讨论!

1、解决setup中函数及变量暴露与同时返回渲染函数冲突,可以通过expose()函数解决,如下:

import { h, ref } from 'vue'

export default {
  setup(props, { expose }) {
    const count = ref(0)
    const increment = () => ++count.value

    expose({
      increment
    })

    return () => h('div', count.value)
  }
}

2、 解决没有this + 各种api的方法

a、使用路由方法

// 在新的vue-router里面代替this的useRouter,具体使用如下:
<seript setup>
    //引入路由函数
    import { useRouter } from "vue-router";
    //使用
    const router = useRouter();
    router.push({
        path: "/"
    });
</script>

b、vue3中由于没有this所以获取不到$ref,$message,但是官网中提供了方法来获取:

<template>
    <el-form ref="rulForm">
        <el-form-item></el-form-item>
    </el-form>
</template>
<script setup>
    import { ref } from 'vue'
    const rulForm  = ref(null)
</script>

//第二种方法,也可以通过getCurrentInstance来获取
<template>
    <el-form ref="rulForm">
        <el-form-item></el-form-item>
    </el-form>
</template>

<script setup>
    import { onMounted, ref, getCurrentInstance } from 'vue'
    const {proxy} = getCurrentInstance()
    onMounted(()=>{
        console.log(proxy.$refs.rulForm);
        proxy.$message({ type: 'info', text: '测试消息' })
    })
</script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值