Vue/Nuxt/pages/中间件 middleware

发布于 2025-01-10 11:09:45 字数 1889 浏览 3 评论 0

middleware 定义

中间件允许您定义一个 自定义函数 运行在一个 页面 或一组页面 渲染之前

每一个中间件应放置在 middleware/ 目录。 文件名称 将成为中间件名称 ( middleware/auth.js 将成为 auth 中间件)。

一个中间件接收 context 作为第一个参数:

export default function (context) {  // context:当前页面的上下文对象
  context.userAgent = process.server
    ? context.req.headers['user-agent']
    : navigator.userAgent
}

中间件执行流程顺序

  1. nuxt.config.js
  2. 匹配布局
  3. 匹配页面

异步执行

中间件可以 异步执行 ,只需要返回一个 Promise 或使用第 2 个 callback 作为第一个参数:

// middleware/stats.js
import axios from 'axios'

export default function ({ route }) {
  return axios.post('http://my-stats-api.com', {
    url: route.fullPath
  })
}

然后在你的 nuxt.config.jslayouts 或者 pages 中使用中间件:

// nuxt.config.js
module.exports = {
  router: {
    middleware: 'stats'
  }
}

stats 中间件将在每个路由改变时被调用

您也可以将 middleware 添加到 指定的布局 或者 页面 :

// pages/index.vue 
// 或者
// layouts/default.vue
export default {
  middleware: 'stats'
}

如果你想看到一个使用中间件的真实例子,请参阅在 GitHub 上的 example-auth0

哪些地方可添加 middleware

  • nuxt.config.js
  • Layout 布局
  • Pages 页面

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

黎歌

暂无简介

文章
评论
24 人气
更多

推荐作者

白云不回头

文章 0 评论 0

糖粟与秋泊

文章 0 评论 0

洋豆豆

文章 0 评论 0

泛滥成性

文章 0 评论 0

mb_2YvjCLvt

文章 0 评论 0

夜光

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文