Nuxt路由使用自定义路由器,仅渲染一次

时间:2020-07-10 10:34:30

标签: javascript nuxt.js vue-router

您好,所有编码员

我目前正在网上商店中开发nuxt应用程序。在Nuxt中,我们的设置是使用nuxt构建(目标静态)和&nuxt导出的打字稿构建。

这意味着我们需要在构建时创建所有路由。

现在我们有大约2500条路径,并且我们想创建自己的自定义路由器。这是因为要基于2个api调用获取所有路由,其中​​一个来自我们的cms,另一个来自我们的PIM。

API调用提供了所有内容页面的URL和所有产品的URL。

在本地工作正常,并且使用正确的组件可以使所有页面正确显示。问题在于我们构建时。

我们在运行的router.js中创建路由器

return new Router({
    mode: 'history',
    routes: newArr, // <- routes created from api calls / data
    scrollBehavior (to, from, savedPosition) {
      if (savedPosition) {
        return { x: 0, y: 0 }
      }
    }
  })

这可以正常工作。 然后我们是否使用自定义模块在nuxt中停止正常的路由创建,将其链接如下: 来源:medium router examples

const path = require("path")

module.exports = function() {
  // tslint:disable: no-any
  (this as any).nuxt.options.build.createRoutes = () => {}
  (this as any).addTemplate({
      fileName: "router.js",
      src: path.resolve(`${(this as any).options.srcDir}`, "router.js"),
  });
};

问题是当我们构建时,nuxt为每个页面构建运行我们的创建路由器...这意味着它调用两个api的次数超过2500次。这是坏...

无论如何,我们可以一次包装一个路由器,然后将其用于所有页面吗?还是你们有不同的方法

0 个答案:

没有答案