Vue在 Nuxt.js 中重定向 404 页面的方法
nuxt.js 依据 pages 目录结构自动生成 vue-router 模块的路由配置。
要在页面之间使用路由,我们建议使用<nuxt-link>
标签。
正文
对我来说,nuxt 是我所用过最好用的软件代码之一。它可以让我高效率地打造网站应用,无论这些应用是 spa,还是 ssr,又或者是静态站点,这同时也是 jam stack 上面所提到的趋势。
顺便提一点,我们这个网站vuedose 也是使用 nuxt 所建立静态站点。
但是,绝大多数自己领悟的很有意思的使用技巧并没有被记载沉淀下来,这不行,现在我们就来分享第一个 nuxt 的技巧。
如果你熟悉 nuxt.js,那么你就应该知道pages 的概念是什么。同样地,你也应该知道这个特殊的error page,虽然它是被放在 layouts 文件夹中的,但它是被作为一个 page。
你可以去重写这个默认的错误页,并且根据你的需求去定制它,但是如果我们想要一个不同的表现形式呢?
在一些情况下,比如当用户访问一个并不存在的页面时,我们想要将其重定向到网站主页。
这里有个方法:你可以通过简单地创建 pages/*.vue
组件来完成这个需求:
<!-- pages/*.vue --> <script> export default { asyncdata ({ redirect }) { return redirect('/') } } </script>
在 nuxt 中,路由是通过文件命名来定义的。所以当我们创建了一个 *.vue
文件是,我们实际上是在 vue router
上使用通配符的路由。
然后,我们使用 nuxt 上下文中的 rediect
方法来实现重定向,无论它是在客户端还是在服务器端。
我们在 asyncdata 方法中去做这个重定向,是因为我们在那里有上下文。但是,我们也可以在 fetch 方法中达到同样的效果:
<!-- pages/*.vue --> <script> export default { fetch ({ redirect }) { return redirect('/') } } </script>
快去使用一下吧,尝试访问任何一个不存在 url,你应该能看到它是如何被重定向的。
总结
以上所述是小编给大家介绍的vue在 nuxt.js 中重定向 404 页面的方法,希望对大家有所帮助