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>

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

相关推荐
kyriewen10 分钟前
重排、重绘、合成:浏览器渲染的“三兄弟”,你惹不起也躲不过
前端·javascript·浏览器
NickJiangDev14 分钟前
Elpis-Core 技术解析:从零构建一个基于 Koa 的企业级 Node.js 框架内核
前端
我要让全世界知道我很低调15 分钟前
来聊聊 Codex 高效编程的正确姿势
前端·程序员
NickJiangDev17 分钟前
Elpis Webpack 工程化实战:Vue 多页应用的构建体系搭建
前端
米饭同学i17 分钟前
GitLab CI/CD + Vue 前端 完整方案
前端
yuki_uix19 分钟前
遇到前端题目,我现在会先问自己这四个问题
前端·面试
Wect20 分钟前
JS 手撕:对象创建、继承全解析
前端·javascript·面试
PeterMap24 分钟前
Vue.js全面解析:从入门到上手,前端新手的首选框架
前端·vue.js
3秒一个大25 分钟前
深入理解 JS 中的栈与堆:从内存模型到数据结构,再谈内存泄漏
前端·javascript·数据结构
weixin_4138385626 分钟前
基于区块链的校园二手书交易系统
vue.js·spring·区块链·fabric