Nuxt的middleware中间件使用方法

更新日期: 2021-09-22阅读: 1.6k标签: nuxt

首先申明,我们使用的vue3且有一个vue-cli的后台,前台为了seo和加载效率,所以选择了NUXT框架

其次,由于我们想做多皮肤功能,所以在用户访问网页之前,先确定管理员设置的前台网页使用的哪一个皮肤,这里用到了中间件概念。 使用函数定义一个页面的中间件,会在页面初始化之前调用

middleware目录中,新建一个whichSkin.TS文件,调用中间件的方法有两种;

一种的是在nuxt.config.js中的router添加middleware参数

 router:{
    middleware: 'whichSkin',
    extendRoutes(routes, resolve) {
      console.log(routes)
      // routes.push({
      //   path: '/users/:id'
      // })
    }
  },

另一种是直接在页面上添加

//例如urer.vue
export default {
  middleware: 'whichSkin',
}

whichSkin.ts文件内容添加(我直接添加的官网代码

export default function ({route, store, redirect }) {
  console.log(route)
  // If the user is not authenticated
  // if (!store.state.authenticated) {
  //   return redirect('/login')
  // }
}

迷惑行为来了,除了官网给的route, store, redirect, 中间件的参数有哪些?打出来看看吧

export default function (app) {
  console.log(app) 
}

chorme控制台显示打印的内容为:

$axios: ƒ wrap()
$config: {}
app: {head: {…}, store: Store, router: VueRouter, nuxt: {…}, render: ƒ, …}
base: "/"
env: {}
error: ƒ ()
from: {name: "default-siteid", meta: Array(2), path: "/default/4wzv92/", hash: "", query: {…}, …}
isDev: true
isHMR: false
isStatic: false
next: ƒ ()
nuxtState: {serverRendered: true, routePath: ""/default/4wzv92/""}
params: {catname: undefined, id: undefined, __ob__: Observer}
payload: undefined
query: {}
redirect: ƒ (status, path, query)
route: {name: "default-siteid", meta: Array(2), path: "/default/4wzv92/", hash: "", query: {…}, …}
store: Store {_committing: false, _actions: {…}, _actionSubscribers: Array(1), _mutations: {…}, _wrappedGetters: {…}, …}
_errored: false
_redirected: false

既然知道了有这些参数,那就好办了,想鉴权,想重定向,想axios请求...没人拦你了,去吧,皮卡丘!!!

注意: 新标签使用middleware中间件在server端请求数据,此时提交到vuex store,发现并不能更新store,而且数据不一致。使用nuxtServerInit来初始化即可。

来自:https://www.zhmzjl.com/show-11-301-1.html


链接: https://fly63.com/article/detial/10963

nuxt.js的使用和开发,一款vue基于服务器SSR渲染工具

一款基于Vue.js的SSR框架——Nuxt.js。是vue进行SSR的一个优选开源项目,可免去繁琐的Webpack、nodejs后台服务配置等操作,方便的搭建一个支持SSR的vue项目。

nuxt.js中添加统计代码,添加百度统计,或者google的统计

在 Nuxt.js应用中使用Google统计分析服务,或者百度统计分析服务,推荐在 plugins 目录下创建 plugins/ga.js 文件。

nuxt.js中全局变量的设定_nuxt如何实现全局初始化功能

在组件和布局中需要使用到相同的数据,改数据需要在nuxt初始化时候获取,而且仅从服务器端获取一次即可。那么该如何实现nux全局初始化功能呢?可以通过vuex来管理全局的一个状态的数据,Nuxt.js 的渲染流程,最先调用的即是 nuxtServerInit 方法。

使用Nuxt.js创建服务器端渲染的Vue.js应用程序

Nuxt.js基于名为Next的热门React库的SSR实现。 为Vue设计了一个名为Nuxt的类似实现。 熟悉React + Next组合的人会在应用程序的设计和布局中发现一些相似之处。 但是,Nuxt提供Vue特有的功能来为Vue创建强大且灵活的SSR解决方案。

使用nuxt.js官方脚手架构建koa2的es6编译问题

最近在学用nuxt集成koa2做vue后台,发现官方自带脚手架搭建的koa2使用的仍是es5语法,如果想用es6怎么办呢?这是由于自带脚手架在构建koa2时默认的nodemon是没有使用babel编译的,所以我们首先需要在启动命令后加上 --exec babel-node

Nuxt.js部署应用的方式

Nuxt.js 提供了两种发布部署应用的方式:服务端渲染应用部署 和 静态应用部署。静态应用部署就不说了,主要说说服务端渲染应用部署。每次在服务器上执行nuxt build,总是有如下报错,并且jenkins会随之挂掉。

Travis CI 部署遇到的问题? 部署怎么启动 nuxt服务

uxt打包的静态文件可以直接放在GitHub上面,然后 TravisCI跟GitHub又很亲切,就选择了TravisCI部署。Travis CI 部署到GitHub项目gh-pages分支上,打开页面发现引用资源404?

服务端预渲染之Nuxt

现在前端开发一般都是前后端分离,mvvm和mvc的开发框架,如Angular、React和Vue等,虽然写框架能够使我们快速的完成开发,但是由于前后台分离,给项目SEO带来很大的不便,搜索引擎在检索的时候是在网页中爬取数据

nuxt框架中对vuex进行模块化设置

Nuxt.js 内置引用了 vuex 模块,所以不需要额外安装。Nuxt.js 会尝试找到应用根目录下的 store 目录,如果该目录存在,它将做以下的事情:Nuxt.js 支持两种使用 store 的方式:普通方式: store/index.js 返回一个 Vuex.Store 实例

Nuxt.js引用谷歌广告代码

最近另一个网站的谷歌联盟申请下来了,记录一下Nuxt.js如何引用谷歌广告的JS代码,当初找了好久。只配置nuxt.config.js文件就可以,下面贴出来。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!