解决vue3按注册名动态渲染组件在setup中无效的问题

在setup语法糖中,按注册名动态渲染组件无效:

javascript 复制代码
<template>
  <component :is="cpnName" />
</template>
<script setup>
  import QuesTypeContent from './QuesTypeContent.vue';
  const cpnName = 'QuesTypeContent';
</script>

解决办法:

  • 1.抛弃setup用选项式api。
  • 2.如果我们必须要使用到组件名渲染时,做如下更改即可生效:
javascript 复制代码
<template>
  <component :is="cpn[cpnName]" />
</template>
<script setup>
  import QuesTypeContent from './QuesTypeContent.vue';
  const cpnName = 'QuesTypeContent';
  const cpn = { QuesTypeContent };
</script>

本质上这还是直接使用组件对象,但解决了特定情况下必须用到组件注册名的问题。

相关推荐
天蓝色的鱼鱼15 分钟前
从“死了么”到“我在”:用uniCloud开发一款温暖人心的App
前端·uni-app
小徐_233319 分钟前
uni-app 组件库 Wot UI 的 AI 友好型编程指南
前端·uni-app
HelloReader21 分钟前
Flutter Widget 基础手把手教你创建自定义组件(二)
前端
Hilaku25 分钟前
在 HTTP/3 普及的 2026 年,那些基于 Webpack 的性能优化经验,有一半该扔了
前端·javascript·面试
前端付豪28 分钟前
AI 数学辅导老师项目构想和初始化
前端·后端·python
HelloReader29 分钟前
从零创建你的第一个 Flutter 应用(一)
前端
程序员阿峰29 分钟前
别再写JS监听滚动了!一行CSS搞定导航固定+通讯录效果(附3个案例)
前端
wordbaby32 分钟前
前端进阶:小程序 Canvas 2D 终极指北 — 给图片优雅添加水印
前端·canvas
树上有只程序猿35 分钟前
OpenClaw虽香,但不是人人都养得起“小龙虾
前端·openai
小黑的铁粉1 小时前
vue中怎么监测一个div的宽度变化
vue.js