Vue 组件基础——动态组件

一、动态组件语法

利用动态组件可以动态切换页面中显示的组件。使用<component>标签可以定义动态组件,语法格式如下。

<component is="要渲染的组件"></component>

上述语法格式中<component>标签必须配合is属性一起使用is属性的属性值表示要渲染的组件,当该属性值发生变化时,页面中渲染的组件也会发生变化

is属性属性值可以是字符串组件,当属性值为组件时,如果要实现组件的切换,需要调用shallowRef()函数定义响应式数据,将组件保存为响应式数据shallowRef()函数只处理对象最外层属性的响应,它比ref()函数更适合于将组件保存为响应式数据

二、演示动态组件的使用方法

创建SignIn.vue登录组件:

<template>
    <div>
        登录组件
    </div>
</template>

创建SignUp.vue注册组件:

<template>
    <div>
        注册组件
    </div>
</template>

创建DynamicComponent.vue组件:

<template>
    <button @click="showComponentName = SignIn">展示登录组件</button>
    <button @click="showComponentName = SignUp">展示注册组件</button>
    <div>
        <KeepAlive> 
            <component :is="showComponentName" />
        </KeepAlive>
    </div>
</template>

<script setup>
import { shallowRef } from 'vue'
import SignUp from './SignUp.vue'
import SignIn from './SignIn.vue'

const showComponentName = shallowRef('SignUp')
</script>

其中<KeepAlive></KeepAlive>用于实现组件缓存。

 附本节项目代码下载地址:

链接:https://pan.baidu.com/s/16Iy3bNzoQUNiS8D0qOYtOw?pwd=8888 
提取码:8888

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值