vue3动态组件未渲染问题

渲染问题

在这里插入图片描述

component动态组件写法与vue2写法一致,代码如下:

<component :is="componentName"/>
<script setup>
	import { ref } from 'vue'
	import account from './user/account.vue'
	// 组件名称
	const componentName = ref('account')
	// 点击左侧菜单
	const onChangeTab = (name) => {
		componentName.value = name
	}
</script>

解决方法

由于使用setup语法糖时,动态组件失效,所以需要使用shallowReactive()转换下

<component :is="dom[componentName]"/>
	import { ref, shallowReactive } from 'vue'
	import account from './user/account.vue'
	import password from './user/password.vue'
	const dom = shallowReactive({
		account,
		password
	})
	// 组件名称
	const componentName = ref('account')
	// 点击左侧菜单
	const onChangeTab = (name) => {
		componentName.value = name
	}

最终效果

在这里插入图片描述

在这里插入图片描述
参考文章:https://www.jianshu.com/p/6403f8792b34

相关推荐

  1. Vue3中使用动态组件

    2024-03-15 07:46:02       68 阅读
  2. Vue3前端框架:动态组件详解

    2024-03-15 07:46:02       49 阅读
  3. Vue3使用component动态展示组件

    2024-03-15 07:46:02       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 07:46:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 07:46:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 07:46:02       82 阅读
  4. Python语言-面向对象

    2024-03-15 07:46:02       91 阅读

热门阅读

  1. 分布式微服务 - 4.服务增强 - 1.概念

    2024-03-15 07:46:02       36 阅读
  2. Memcached

    Memcached

    2024-03-15 07:46:02      36 阅读
  3. 27-1 文件上传漏洞基础

    2024-03-15 07:46:02       38 阅读
  4. 头歌-贪心算法

    2024-03-15 07:46:02       41 阅读
  5. ARM/Linux嵌入式面经(六):华为【共四面】

    2024-03-15 07:46:02       37 阅读
  6. go读取terraform .tf文件内容

    2024-03-15 07:46:02       37 阅读
  7. CFINet

    CFINet

    2024-03-15 07:46:02      40 阅读
  8. 用js实现斐波那契数列

    2024-03-15 07:46:02       35 阅读
  9. 最小二乘法

    2024-03-15 07:46:02       44 阅读
  10. 多线程(锁策略, synchronized 对应的锁策略)

    2024-03-15 07:46:02       44 阅读
  11. typescript 学习

    2024-03-15 07:46:02       47 阅读