Javascript 路由器动态组件
我被vue路由器卡住了,我不知道该怎么做,也找不到任何适合我的东西,我不确定它是用于旧版本还是其他版本 我的问题: 我有一个适用于两个不同网站的Vue应用程序,例如:example.nl和example.be。 现在,对于这两个站点,我都有一个siteId。我可以从vuex那里得到那个idJavascript 路由器动态组件,javascript,vue.js,import,vuejs2,vue-router,Javascript,Vue.js,Import,Vuejs2,Vue Router,我被vue路由器卡住了,我不知道该怎么做,也找不到任何适合我的东西,我不确定它是用于旧版本还是其他版本 我的问题: 我有一个适用于两个不同网站的Vue应用程序,例如:example.nl和example.be。 现在,对于这两个站点,我都有一个siteId。我可以从vuex那里得到那个id const siteId = store.getters.siteId; 现在,基于siteId,我想在路由上加载一个组件 示例: import {store} from '@/plugins/vuex_s
const siteId = store.getters.siteId;
现在,基于siteId,我想在路由上加载一个组件
示例:
import {store} from '@/plugins/vuex_store';
const siteId = store.getters.siteId;
import test from 'nl/test';
if(siteId === 2) {
import test from 'be/test'; <-- thows error 'statement expected'.
}
let router = ({
path: 'exmaple',
name: 'example',
component: test,
});
export default router;
但这给了我一个语法错误
任何想法都很好我可能会为您提供3种解决方案。我自己也不确定解决方案2
const siteId = store.getters.siteId;
let loadSite = () => import ('nl/test');
if(siteId === 2) {
loadSite = () => import ('be/test');
}
let router = ({
path: 'exmaple',
name: 'example',
component: loadSite,
});
或
或
我可能有3个解决方案给你。我自己也不确定解决方案2
const siteId = store.getters.siteId;
let loadSite = () => import ('nl/test');
if(siteId === 2) {
loadSite = () => import ('be/test');
}
let router = ({
path: 'exmaple',
name: 'example',
component: loadSite,
});
或
或
这对我不起作用,因为我在编译时遇到语法错误,就像我在问题中描述的那样。我尝试了一个新的CLI 3项目,但没有成功的地方,所以我想我需要升级到一个更新的Vue项目模板。您
router.js
import应该是这样的:从“Vue”导入Vue代码>从“vue路由器”导入路由器代码>。您得到的语法错误是什么?这对我不起作用,因为我在编译时遇到语法错误,就像我在问题中描述的那样。我尝试了一个新的CLI 3项目,但没有成功的地方,所以我想我需要升级到一个更新的Vue项目模板。您router.js
import应该是这样的:从“Vue”导入Vue代码>从“vue路由器”导入路由器代码>。您得到的语法错误是什么?
const siteId = store.getters.siteId;
const loadSite1 = () => import ('nl/test');
const loadSite2 = () => import ('be/test');
let router = ({
path: 'exmaple',
name: 'example',
component: (siteId === 1) ? loadSite1 : loadSite2,
});
const loadSite1 = () => import ('nl/test');
const loadSite2 = () => import ('be/test');
let router = ({
path: 'example',
name: 'example',
}, {
path: 'site1',
name: 'site1',
component: loadSite1,
}, {
path: 'site2',
name: 'site2',
component: loadSite2,
});
router.beforeEach((to, from, next) => {
if (to.path.example === 'example') {
if(store.getters.siteId === 1) return next('site1');
else if(store.getters.siteId === 2) return next('site2');
}
}