Vue.js 具有动态生成别名(也称为SSR)的Vue路由器

Vue.js 具有动态生成别名(也称为SSR)的Vue路由器,vue.js,vuejs2,vue-router,Vue.js,Vuejs2,Vue Router,我们的业务逻辑允许不同类型的配置文件页面(用户配置文件、公司配置文件等,每个页面都有自己的模板),但URL不会区分不同类型的配置文件。所有URL的格式如下: mysite.com/{{ profile-vanity-alias }} vue路由器配置如何确定要渲染的组件?e、 g mysite.com/zuckerberg应该呈现一个用户配置文件页面 mysite.com/facebook应呈现公司简介页面 mysite.com/jeffbezos不存在,因此它应该呈现404 mysite.

我们的业务逻辑允许不同类型的配置文件页面(用户配置文件、公司配置文件等,每个页面都有自己的模板),但URL不会区分不同类型的配置文件。所有URL的格式如下:

mysite.com/{{ profile-vanity-alias }}
vue路由器
配置如何确定要渲染的组件?e、 g

  • mysite.com/zuckerberg
    应该呈现一个用户配置文件页面
  • mysite.com/facebook
    应呈现公司简介页面
  • mysite.com/jeffbezos
    不存在,因此它应该呈现404
  • mysite.com/companys/usa
    应在另一个页面上显示来自美国的公司列表(
    /companys/:country?
    是可以硬编码的已知路线)
此外,我们还考虑使用
vue-ssr
(用于搜索引擎优化);我从来没有真正使用过SSR,所以这是我不知道从哪里开始的事情——一些指针将非常有用


谢谢

您可以使用开关逻辑来确定需要加载哪个组件,然后动态加载该组件

<component v-bind:is="component" />


也许你可以通过这篇文章来了解细节

路由路径显然类似于/:profile。我将拥有一个通用的父组件,它响应该路由并加载相应的概要文件对象(从API等),并且基于一些标志或其他标准,它显示个人或公司的概要文件组件——在这里,动态组件可能扮演一个角色。 作为一个简短的草图,在父组件中,我将:

<div>
   <user-profile v-if="currentObject.isUser" :id="currentObject.id" />
   <company-profile v-if="currentObject.isCompany" :id="currentObject.id" />
</div>

这没用。问题是,如果所有URL实际上都相同(
mysite.com/{{some slug}}
),vue路由器将如何决定加载哪个页面