vue动态组件加载例子

<!--
 * @Author: your name
 * @Date: 2020-07-21 20:50:21
 * @LastEditTime: 2020-07-31 20:15:53
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \今日头条Demo\src\views\UserArticle\UserArticle.vue
--> 
<style lang="less" scoped>
.UserArticle {
  padding: 90px 0 50px;
  /deep/ .van-tabs__wrap {
    position: fixed;
    top: 46px;
    left: 0;
    right: 0;
    z-index: 1;
  }
}
</style>
<template>
  <div class="UserArticle">
    <!-- 导航栏 -->
    <van-nav-bar title="我的收藏/历史/作品" left-arrow @click-left="$router.back()" fixed></van-nav-bar>
    <!-- 标签页 -->
    <van-tabs v-model="active">
      <van-tab title="我的收藏"></van-tab>
      <van-tab title="我的历史"></van-tab>
      <van-tab title="我的作品"></van-tab>
    </van-tabs>

    <!-- 动态组件 -->
    <component v-bind:is="currentTabComponent"></component>
  </div>
</template>

<script>
export default {
  name: "UserArticle",
  components: {
    "kv-userarticle": () => import("../../components/UserArticle/article"),
    "kv-history": () => import("../../components/UserArticle/history"),
    "kv-collect": () => import("../../components/UserArticle/collect"),
  },
  props: {
    type: {
      type: String,
    },
  },
  data() {
    let active = ["collect", "history"].indexOf(this.type);
    if (active === -1) {
      active = 2;
    }
    return {
      active: 0,
      // currentTabComponent:'kv-userarticle'
    };
  },
  watch: {},
  computed: {
    currentTabComponent() {
      return ["kv-history", "kv-collect", "kv-userarticle"][this.active];
    },
  },
  methods: {},
  created() {},
  mounted() {},
};
</script>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值