setup语法糖中的component组件无效

在Vue应用中,遇到动态组件不显示的问题,可能是因为使用了字符串来表示组件名。正确做法是使用变量来存储组件名,如`currentPage`,并确保在`scriptsetup`中引入和引用组件,例如`Home`和`About`,通过`shallowRef`创建可变引用,然后在模板中使用`:is`指令结合变量来动态渲染组件。
摘要由CSDN通过智能技术生成

问题描述:
动态组件命明明写好了,我这怎么就不展示?比如下面这个,我觉得自己写得非常稳当!!
在这里插入图片描述

解决办法:
明明写好了,跟你有什么关系,你又没写好。那怎么办呢,
参考下面这个栗子🌰:
在这里插入图片描述

将所有**组件的名字**用**变量**表示,别用字符串,举个🌰如下:
<template>
  <div class="app">
    <p>App</p>
    <button @click="currentPage = Home">home</button>
    <button @click="currentPage = About">about</button>
    <component :is="currentPage"></component>
  </div>
</template>

<script setup>
import { ref } from 'vue'
import About from './views/About.vue'
import Home from './views/Home.vue'
let currentPage = shallowRef(Home)
</script>
Vuesetup语法糖,可以通过父组件传递参数给子组件,以及通过子组件派发事件传递参数给父组件。 首先,在父组件,我们可以通过在模板使用冒号绑定属性的方式将参数传递给子组件。例如,可以使用`:userType="userType"`将`userType`参数传递给子组件。 然后,在子组件,我们可以使用`defineProps`函数定义接收的参数。在`defineProps`函数,我们可以指定参数的类型、默认值和是否必须传递。例如,`const props = defineProps({ userType: { type: String, default: String, required: true } })`定义了一个名为`userType`的参数,类型为字符串,有一个默认值为空字符串,且必须传递。 在父组件,通过派发事件的方式可以获取子组件传入的参数。例如,在父组件的方法,可以使用`@menu-send="menuSend"`将子组件通过`$emit`方法派发的事件与父组件的方法进行绑定。然后在`menuSend`方法,可以获取子组件传入的参数。 综上所述,通过父组件传递参数给子组件和通过子组件派发事件传递参数给父组件,可以实现父子组件之间的参数传递。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue3 + vite + ts + setup , 第二练 setup ts语法糖实现父子组件传参](https://blog.csdn.net/csl125/article/details/124262027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue3父子组件传参(setup语法糖写法)](https://blog.csdn.net/skyblue_afan/article/details/126667586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值