首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VueJS + vue-i18n路由

VueJS + vue-i18n路由
EN

Stack Overflow用户
提问于 2019-05-13 12:23:06
回答 1查看 7.9K关注 0票数 3

无法确定如何设置路由,以及为什么当前配置不能工作。

我想要做的是:

URL结构:

代码语言:javascript
复制
http://example.com/en
http://example.com/en/about-us
http://example.com/en/sample-page

http://example.com/fr
http://example.com/fr/about-us
http://example.com/fr/sample-page

为了处理正确的重定向,我设置了beforeEach:

代码语言:javascript
复制
router.beforeEach((to, from, next) => {
  const lang = to.params.lang;

  if ( !['en','fr'].includes(lang) ) {
    return next('en');
  }

  if ( i18n.locale !== lang ) {
    i18n.locale = lang;
  }

  return next();
});

这是我不明白的部分,为什么它不能工作,为什么,为什么家庭组件没有加载在所有的

router.js

代码语言:javascript
复制
export default new Router({
  mode: 'history',
  base: process.env.BASE_URL,
  routes: [
    {
      path: '/:lang',
      children: [
        {
          path: '',
          name: 'home',
          component: Home,
        }
      ],
    },
  ],
})

语言(地区)转换工作良好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-13 14:08:42

您需要一个组件来呈现路由/:lang。您可以创建一个文件并在其中添加<router-view/>,或者创建一些匿名组件,如:

代码语言:javascript
复制
export default new Router({
  mode: 'history',
  base: process.env.BASE_URL,
  routes: [
    {
      path: '/:lang',
      component: {
        render: h => h('router-view')
      },
      children: [
        {
          path: '',
          name: 'home',
          component: Home,
        }
      ],
    },
  ],
})
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56112282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档