动态组件和异步组件

博客围绕Vue展开,但具体内容缺失。Vue是前端开发中常用的框架,能帮助开发者高效构建用户界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>lesson 21</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="root"></div>
</body>
<script>
    //动态组件:根据数据的变化,结合component 这个标签,来随时动态切换组件的实现
    //异步组件:异步执行某些组件的逻辑,这叫做异步组件

    const app = Vue.createApp({
        data() {
            return {
                currentItem: 'input-item'
            }
        },
        methods: {
            handleClick() {
                this.currentItem === 'input-item' ? this.currentItem = 'common-item' : this.currentItem = 'input-item';
            }
        },
        //keep-alive 保留缓存
        //  <component :is="name" /> 动态组件
        template: `
            <keep-alive>
                <component :is="currentItem" />
            </keep-alive>
            <input-item v-show="currentItem === 'input-item'" />
            <common-item v-show="currentItem === 'common-item'" />
            <button @click="handleClick">change</button>
            <common-item />
            <async-common-item />
        `
    });
    app.component('common-item', {
        template:`
            <div>hello-world</div>
        `
    });
    app.component('input-item', {
        template:
            `<div>
                <input />
            </div>`
    });

    app.component('async-common-item',Vue.defineAsyncComponent(() => {
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve({
                    template:`<div>this is an async component</div>`
                })
            }, 4000);
        })
    }))
    app.mount('#root');
    
</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值