页面重新加载时如何运行客户端功能?

问题描述 投票:0回答:1

我很难弄清楚如何做一个简单的“自动登录”,将JWT令牌重新连接到axios上... ... [[我不知道是]在哪里写因此当有人刷新页面时,可以将其称为第一件事...

在“普通” VueJS中,可以挂接到应用程序created事件,例如

new Vue({ router, store, created() { /* application created hook */ }, render: h => h(app) }).$mount('#app')

但是在Nuxt中,我们如何完成相同的工作? 

我也尝试过使用

client Middleware

client Plugin运行,但是它们在刷新后不运行客户端模式,仅在服务器模式下运行...刷新页面后在客户端中运行代码的正确方法是什么?


[添加的设置

以更好地理解我的工作我有2个示例

middlewares >> as:

// FILE ./middleware/authenticated.js export default function (ctx) { console.log('[MIDDLEWARE] Authenticated, is client:', process.client) }

// FILE ./middleware/refreshToken.js export default function (ctx) { console.log('[MIDDLEWARE] Refresh token, is client:', process.client) }

而且我的布局是:

export default { components: { ... }, middleware: ['refreshToken', 'authenticated'], ... }

我还添加了

plugin

// FILE ./plugins/auth.js export default function (ctx) { console.log('[PLUGIN] Auth, is client:', process.client) }
并将其设置为plugins: [{ src: '~/plugins/auth' }], ...

什么都没有在客户端上运行...全部都仅在服务器模式下运行(并且我无法在服务器模式下访问localStorage-我可以最终使用Cookie,以便可以从服务器读取它,但这不是重点)

输出为:

[PLUGIN] Auth, is client: false [MIDDLEWARE] Refresh token, is client: false [MIDDLEWARE] Authenticated, is client: false

如何刷新页面后以客户端模式运行任何代码?

我很难弄清楚如何做一个简单的“自动登录”,在那里我将JWT令牌重新连接到axios ...我不知道该在哪里写,所以可以当...

nuxt.js
1个回答
0
投票
使用SSR时,中间件在初始请求时在服务器端运行(例如,在重新加载页面时。)>

一个客户端插件,例如~plugins/refresh.client.js将满足您的需求,并且仅在页面加载后在客户端运行一次。

© www.soinside.com 2019 - 2024. All rights reserved.