解决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>

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

相关推荐
Dreamcatcher_AC几秒前
前端面试高频问题解析
前端·css·html
damo王11 分钟前
how to install npm in ubuntu24.04?
前端·npm·node.js
光影少年12 分钟前
Vue 2 / Vue 3 diff算法
前端·javascript·vue.js
zhixingheyi_tian24 分钟前
Yarn 之 run job
java·开发语言·前端
指尖跳动的光26 分钟前
如何减少项目里面if-else
前端·javascript
yanghuashuiyue27 分钟前
Vue3难以统一的命名规范
前端·vue.js·typescript
码界奇点1 小时前
基于Spring Cloud与Vue.js的微服务前后端分离系统设计与实现
vue.js·后端·spring cloud·微服务·毕业设计·源代码管理
mini_0551 小时前
elementPlus版本升级,el-select默认值显示问题
前端·javascript·vue.js
C_心欲无痕1 小时前
vue3 - watchPostEffect在DOM 更新后的副作用处理
前端·vue.js
教练、我想打篮球1 小时前
123 safari 浏览器中下载 URLEncoder.encode 的中文名称的文件, safari 未进行解码, 其他浏览器正常
前端·http·safari