vue3项目中组件切换不起作用

以下这种方式写页面中组件切换,不起作用。

javascript 复制代码
<component :is="steps[compIndex].comp" />

解决:使用shallowReactive或者shallowRef把对应的组件名称重新定义下。

javascript 复制代码
<component :is="compNames[steps[compIndex].comp]" />
<el-button v-for="(item,index) in boxes" @click="compIndex = index">点击切换组件</el-button>

<script setup lang="ts">
import comp1 from './components/comp1.vue'
import comp2 from './components/comp2.vue'
const boxes = [{title:'标题1',comp:'comp1'},{title:'标题2',comp:'comp2'}]

const compIndex = ref(0)
type compName = {
    [key:string]:any
}
const compNames = shallowReactive<compName>({comp1,comp2})
</script>

不清楚还有没有其它解决办法,暂时就这样吧!

相关推荐
wuhen_n19 分钟前
LeetCode -- 15. 三数之和(中等)
前端·javascript·算法·leetcode
七月shi人41 分钟前
AI浪潮下,前端路在何方
前端·人工智能·ai编程
非凡ghost41 分钟前
MusicPlayer2(本地音乐播放器)
前端·windows·学习·软件需求
脾气有点小暴1 小时前
scroll-view分页加载
前端·javascript·uni-app
beckyye1 小时前
ant design vue Table根据数据合并单元格
前端·antd
布列瑟农的星空1 小时前
还在手动翻译国际化词条?AST解析+AI翻译实现一键替换
前端·后端·ai编程
土豆12502 小时前
Rust 错误处理完全指南:从入门到精通
前端·rust·编程语言
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之mmove命令(实操篇)
linux·服务器·前端·chrome·笔记
前端开发爱好者2 小时前
VSCode 重磅更新!要收费了?
前端·javascript·visual studio code