我想将两个Vue项目合并为一个项目;这就是我卡住的地方

时间:2018-10-03 05:00:25

标签: javascript vue.js vuejs2 vue-component vue-router

有一种在可以从router.js访问的条件下使用vue.use的方法 在这种情况下,我想在MaterialDashboad上使用专用于“ / presentation”和其他的NOWUIKIT,这样它们可以彼此重叠,以便我可以合并那些项目

// main.js

    import Vue from 'vue'
    import router from './router'
    import App from './App'

    import MaterialDashboard from './plugins/material-dashboard'
    import NowUIKit from './plugins/now-ui-kit'

    if(someboolean){
    Vue.use(NowUIKit)
    }
    else{
    Vue.use(MaterialDashboard)
    }

    new Vue({
      el: '#app',
      router,
      components: { App },
      template: '<App/>'
    })

// router.js

  path: '/presentation',
  name: 'presentation',
  components: {
    default: Presentation,
    header: MainNavbar,
    footer: MainFooter
  },
  props: { header: { colorOnScroll: 500 }, someboolean: true }

1 个答案:

答案 0 :(得分:0)

添加实例属性,您可以通过在原型上定义它们,使它们可用于每个Vue实例,并在根文件夹中创建config.js文件。

  // config.js

  import MaterialDashboard from './plugins/material-dashboard'
  import NowUIKit from './plugins/now-ui-kit'

  export default function (Vue){ 

        Vue.plugin = {

            getPlugin ()  {

              if(someboolean){
                return NowUIKit;
              }else{
                return  MaterialDashboard;
              }
            }
        }

        Object.defineProperties (Vue.prototype, { 
            $plugin: {
              get ()  {
                return Vue.plugin;
              }
            }
        })

    } 

// main.js

import Vue from 'vue'
    import router from './router'
    import App from './App'

    import Plugin from './config.js'

    Vue.use(Plugin)
    Vue.use(Plugin)

    // Vue.plugin.getPlugin(); access plugin instance

    new Vue({
      el: '#app',
      router,
      components: { App },
      template: '<App/>'
    })