有一种在可以从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 }
答案 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/>'
})