Vue.js Vuepress动态路由并呈现为页面?

Vue.js Vuepress动态路由并呈现为页面?,vue.js,routes,vuepress,Vue.js,Routes,Vuepress,在SPA方法中,我使用vuepress作为静态生成页面和动态页面的混合解决方案。动态数据源是一个大型数据库服务器,因此它不能使用vurepress 1.x中引入的功能。这意味着使用enhanceApp.js添加了动态路由,如下所示。动态页面使用扩展布局呈现,以共享相同的页面结构(页眉、页脚) 它可以工作,但是layouts/Foo.vue是一个组件。它缺少frontmatter,标记语法,就像普通的标记页面一样。问题是如何加载降价页面并作为组件传递给routes 我对Vuepress还是新手,但

在SPA方法中,我使用vuepress作为静态生成页面和动态页面的混合解决方案。动态数据源是一个大型数据库服务器,因此它不能使用vurepress 1.x中引入的功能。这意味着使用enhanceApp.js添加了动态路由,如下所示。动态页面使用扩展布局呈现,以共享相同的页面结构(页眉、页脚)


它可以工作,但是
layouts/Foo.vue
是一个组件。它缺少frontmatter,标记语法,就像普通的标记页面一样。问题是如何加载降价页面并作为组件传递给routes

我对Vuepress还是新手,但我在源代码中遇到了一些可能对您有所帮助的东西

当Vue SFC是源文件时,直接将其作为布局组件

我还没有读完所有的源代码,所以我不太确定我是否正确理解了它。但我猜当Vuepress找到vue组件时,它不会像标记文件一样呈现它。它假定您在
.vue
文件中有自己的样式。所以我认为这可能就是为什么你错过了正常的降价页面

但是,如果您需要将动态数据源与静态页面混合使用,您可以尝试获得您想要实现的目标

// Foo is a layout component extends from Layout.vue
import Foo from './layouts/Foo.vue' 

export default ({
  Vue, // the version of Vue being used in the VuePress app
  options, // the options for the root Vue instance
  router, // the router instance for the app
  siteData // site metadata
}) => {
  router.addRoutes([
    { path: '/foo/:id', component: Foo },
  ]);
}