Vue动态组件和异步组件

1.动态组件

 当我们想要动态切换展示的组件时,就需要动态组件这种语法。可以随时动态切换组件

 

 const app = Vue.createApp({
      data() {
        return { currentItem: "input-item" };
      },
      methods: {
        handleClick() {
          if (this.currentItem === "input-item") {
            this.currentItem = "common-item";
          } else {
            this.currentItem = "input-item";
          }
        },
      },
      template: `
        //利用keep-alive标明是动态组件
       <keep-alive>
        // is用来指定现在展示哪个组件
        <component :is="currentItem" />
       </keep-alive>
        <button @click="handleClick">切换</button>
        `,
});
 app.component("input-item", {
      template: `
            <input/>
        `,
    });
 app.component("common-item", {
      template: `
            <div>hello world</div>
        `,
    });

 2.异步组件

异步组件 异步执行某些组件的逻辑 

 const app = Vue.createApp({
      template: `
    
          <div>
        
            <async-common-item/>  
         </div>
        `,
 });
app.component(
      "async-common-item",
        //定义异步组件
      Vue.defineAsyncComponent(() => {
         //使用promise异步返回一个模板
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            resolve({
              template: `<div>this is an async component</div>`,
            });
          }, 4000);
        });
      })
);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值