【问题标题】:Add middleware to page in nuxt-typescript project将中间件添加到 nuxt-typescript 项目中的页面
【发布时间】:2021-09-10 21:08:36
【问题描述】:

我正在开发 nuxt-typescript 项目。我在 /middleware/redirect.ts 中的中间件:

import { Middleware } from '@nuxt/types'

const redirect: Middleware = (context) => {
  console.log(context)
}

export default redirect

并像这样添加到 index.veu 页面:

<script lang="ts">
import Vue from 'vue'
import redirect from '~/middleware/redirect'

export default Vue.extend({
  middleware: [redirect],
  data () {
    return {}
  }
})
</script>

但它不起作用,我得到错误。 有什么解决办法吗?

不幸的是,文档不清楚。 click

【问题讨论】:

  • 您不应该将列表中使用的中间件列为字符串吗?像这样:middleware: ['redirect'].

标签: javascript typescript vue.js nuxt.js


【解决方案1】:

你不需要导入也不需要给它一个对象,只需传递文档中显示的名称:https://nuxtjs.org/docs/2.x/directory-structure/middleware#named-middleware

应该够了

<script lang="ts">
import Vue from 'vue'

export default Vue.extend({
  middleware: 'redirect',
  data () {
    return {}
  }
})
</script>

【讨论】:

  • 是的,工作。如果这个页面有多个中间件,那我该怎么办?
  • 那么您确实可以完全传递一个数组,例如middleware: ['redirect', 'other'],但请注意顺序很重要:它将是连续的。同样可以在nuxt.config.js 中完成,路由器的密钥顺便说一句:nuxtjs.org/docs/2.x/configuration-glossary/…
猜你喜欢
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
  • 2016-07-15
  • 2020-04-19
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多