Лучший способ заставить серверную навигацию с Nuxt для определенного User-Agent? - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь заставить приложение Nuxt Vue запрашивать URL-адрес на стороне сервера, а не переходить на стороне клиента для определенного агента пользователя. В основном действуют как обычный MPA вместо SPA.

Vue имеет router, который имеет beforeEach. Я смог использовать это через Nuxt plugins, чтобы использовать его, но он вызывается даже при первоначальном прибытии. Мне удалось заставить его работать с проверкой на from.name, но кажется, что, возможно, есть лучший способ, который я пропускаю:

nuxt.config.js

...
  plugins: [
    { src: '~/plugins/user-agent.js', ssr: false }
  ],
...

~ / плагинов / пользователь-agent.js

/* eslint-disable */

export default ({ app }) => {
  app.router.beforeEach((to, from, next) => {
    // Flags
    let isLegacyBrowser = navigator.userAgent.match(/OldBrowser\/2/)
    let isInitializing = (from.name === null)
    // Check User-Agent and if page is just Initializing
    if (isLegacyBrowser && !isInitializing) {
      window.location.href = to.path
    } else {
      next()
    }
  })
}

Кто-нибудь может предложить лучший подход?

...