Маршрутизация Nuxt использует настраиваемый маршрутизатор, отображается только один раз - PullRequest
0 голосов
/ 10 июля 2020

Привет всем товарищам кодировщикам

В настоящее время я работаю над приложением nuxt в интернет-магазине. Наша установка в Nuxt - это машинописная сборка с Nuxt build (target stati c) && nuxt export.

Это означает, что нам нужно создать все маршруты при сборке.

Прямо сейчас у нас есть около 2500 путей, и мы хотим создать собственный роутер. Это связано с тем, что все маршруты были получены на основе двух вызовов API, один из нашей cms, а другой из нашего PIM.

Вызовы API предоставляют все URL-адреса страниц содержимого и все URL-адреса продуктов.

Он отлично работает локально, и все страницы отображаются правильно с правильным компонентом. Проблема заключается в том, когда мы строим.

Мы создаем наш маршрутизатор в маршрутизаторе. 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, ссылка это: Источник: примеры среднего маршрутизатора

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 раз. Это ПЛОХО ...

Можно ли как-то собрать роутер один раз, а затем использовать его для всех страниц? Или у кого-нибудь из вас, ребята, другой подход

...