【发布时间】:2020-11-27 20:08:47
【问题描述】:
我正在尝试创建一个相当普通的东西,让我们认为它是一个博客。在客户端点击明信片会打开包含帖子内容的模式,并将查询 ?postID=123 添加到 URL。
当我们尝试访问my-site.com?postID=123 时,服务器中间件会检查是否有postID 查询参数,并使用301 重定向将我们重定向到my-site.com/category/subcategory/123。该中间件可能如下所示:
export default async function ({ route, redirect, api }) {
const postID = route.query.postID;
if (!postID) return;
const post = await api.get('postID')
redirect(301, `/${post.category}/${post.subcategory}/${postID}`);
}
它有效,但要建立与类别和子类别的链接,我已经得到了我的帖子。在_post 页面上,我们被重定向到我必须再次在asyncData() 或fetch() 中获取我的帖子。
我可以在nuxtServerInit 操作中将帖子发布到商店,但我认为这有点 hack。
所以问题是:有没有办法在重定向期间将一些数据传递给页面组件?
【问题讨论】:
-
如果我做得好,你可以在 nuxt 中做一个中间件来捕获所有重定向,然后你可以在那里传递数据或查询参数
-
@DarioRega 我应该如何通过“重定向”功能将数据传递给页面组件?
-
你能告诉我更多关于你想要传递的数据吗?写一个例子,我尝试根据你的代码调整我的答案
-
@elijah-ellanski 我已经使用重定向实现了类似的任务。你成功解决问题了吗?如果有,具体是怎样的?
标签: vue.js nuxt.js vue-router