首页 > 其他 > 详细

vue组件化-容器

时间:2019-08-19 15:03:46      阅读:125      评论:0      收藏:0      [点我收藏+]

container.vue

<template>
  <div :key="mkey">
    <component v-for="(data,k) in cardMap[mkey]" :is="data.card_type" :card="data" :key="k"></component>
  </div>
</template>
<script>
  //公共部分
  import ‘../common/marvel.css‘;
  const cardSync={
    card2:r => require.ensure([], () => r(require("../components/cards/card2.vue"))),
    card3:r => require.ensure([], () => r(require("../components/cards/card3.vue"))),
    card7:r => require.ensure([], () => r(require("../components/cards/card7.vue"))),
    card8:r => require.ensure([], () => r(require("../components/cards/card8.vue"))),
    card9:r => require.ensure([], () => r(require("../components/cards/card9.vue"))),
    card10:r => require.ensure([], () => r(require("../components/cards/card10.vue"))),
    card11:r => require.ensure([], () => r(require("../components/cards/card11.vue"))),
    card13:r => require.ensure([], () => r(require("../components/cards/card13.vue"))),
    card14:r => require.ensure([], () => r(require("../components/cards/card14.vue"))),
    card20:r => require.ensure([], () => r(require("../components/cards/card20.vue"))),
    card21:r => require.ensure([], () => r(require("../components/cards/card21.vue"))),
    card22:r => require.ensure([], () => r(require("../components/cards/card22.vue"))),
    card23:r => require.ensure([], () => r(require("../components/cards/card23.vue"))),
    card24:r => require.ensure([], () => r(require("../components/cards/card24.vue"))),
    card25:r => require.ensure([], () => r(require("../components/cards/card25.vue"))),
    card26:r => require.ensure([], () => r(require("../components/cards/card26.vue"))),
    card28:r => require.ensure([], () => r(require("../components/cards/card28.vue"))),
    card29:r => require.ensure([], () => r(require("../components/cards/card29.vue"))),
    card30:r => require.ensure([], () => r(require("../components/cards/card30.vue"))),
    card31:r => require.ensure([], () => r(require("../components/cards/card31.vue"))),
    card32:r => require.ensure([], () => r(require("../components/cards/card32.vue"))),
    card33:r => require.ensure([], () => r(require("../components/cards/card33.vue"))),
    card100:r => require.ensure([], () => r(require("../components/cards/card100.vue"))),
    card200:r => require.ensure([], () => r(require("../components/cards/card200.vue"))),
  };

  import Vue from ‘vue‘
  import Bus from ‘./bus‘;

  /*
    增加服务的接口
  * */
  Bus._cardMap={};
  Bus.addCardByData = function (data,mkey=‘mv‘) {
    if(!Bus._cardMap[mkey]){Bus._cardMap[mkey]=[]}
    Vue.component(data.card_type, cardSync[data.card_type]);
    Bus._cardMap[mkey].push(data);
  };

  export default {
    name: ‘modal‘,
    data: function () {
      if(!Bus._cardMap[this.mkey]){Bus._cardMap[this.mkey]=[]}
      return {
        "cardMap": Bus._cardMap
      }
    },
    props: [‘mkey‘],
  };
</script>

demo

<template>
  <container mkey="mv"></container>
</template>

<script>

  import cardsDic from "../components/cardsDic.js";
  import Bus from ‘../marvel/bus‘;
  export default {
    components:{
      container:require("../marvel/container.vue")
    },
    created(){
      for(let i=0;i<cardsDic.data.length;i++){
        const cardName=cardsDic.data[i].card_type
        Bus.addCardByData(cardsDic.getCardData(cardName),‘mv‘)
      }
    },
  };
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss" type="text/css" rel="stylesheet/scss">

</style>

 

vue组件化-容器

原文:https://www.cnblogs.com/caoke/p/11377030.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!