Я пытаюсь заставить приложение 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()
}
})
}
Кто-нибудь может предложить лучший подход?