Vue3 第十二篇:动态组件和异步注册组件

42 篇文章 13 订阅
本文介绍了在Vue中实现动态组件注册和切换的方法,包括异步组件的使用、动态改变组件及参数传递。通过示例代码展示了如何将组件路径作为参数,以及如何在Pinia状态管理库中存储和更新组件URL,实现更灵活的组件管理。
摘要由CSDN通过智能技术生成

1.异步注册组件

const HomeVue = defineAsyncComponent(() => import('@/views/home/Home.vue'))

这不是真正的动态注册,后面路径无法动态传参,需要研究一下

2.动态组件

<component :is=current.comName></component>
<el-button type="success" @click="change()">切换组件</el-button>
// 载入组件
const HomeVue = defineAsyncComponent(() => import('@/views/home/Home.vue'))
const UserListVue = defineAsyncComponent(() => import('@/views/user/UserList.vue'))


// 定义参数
let current = reactive({ comName: markRaw(HomeVue) })


// 切换组件
const change = () => {
    current.comName = markRaw(UserListVue)
}

3.简写一下:

let current = reactive({
    com:markRaw(defineAsyncComponent(() => import('@/views/home/Home.vue')))
})

// 切换组件
const change = () => {
    current.com = markRaw(defineAsyncComponent(() => import('@/views/user/UserList.vue')))
}

4.在改进一下,把url提出来,当做参数传入:

// 定义初始组件
let current = reactive({
    com: markRaw(defineAsyncComponent(() => import('@/views/home/Home.vue')))
})

const url = import('@/views/user/UserList.vue')
// 切换组件
const change = () => {
    current.com = markRaw(defineAsyncComponent(() => url))
}

5.把url放到pinia中

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

文子阳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值