javascript - Nuxt asyncData 无法从授权的快速路由中提取
问题描述
建立一个电子商务商店。从产品开始,无需授权即可拉取,但需要授权才能进行编辑。这工作正常,我怀疑这是因为这发生在客户端上,客户端直接从客户端发送所有请求的身份验证信息(即方法挂钩)。
但是,订单数据确实需要 auth 才能访问其中的任何一个。我无法访问此路由以使用 asyncData 生成页面。我怀疑这是因为它发生在 Nuxt 服务器上而不是客户端上。
async asyncData({ $config: { apiURL } }) {
let orders = await axios.get(
`${apiURL}/orders`
);
return { orders: orders.data.data };
},
这样做的正确方法是什么?设置一个空数据点然后使用mounted或created来拉取和设置?
更新:我把它作为一种方法使用,但是你必须按下按钮才能拉出所有订单,这太糟糕了 ux 大声笑做什么
解决方案
另一种解决方案是
<template>
<section>
<div v-for="user in users" :key="user.id">
{{ user.name }}
</div>
</section>
</template>
<script>
export default {
async asyncData({ $axios, $config: { jsonPlaceholder } }) {
const fetchedUsers = await $axios.$get(`${jsonPlaceholder}/users`)
return { users: fetchedUsers }
},
data() {
return {
users: [],
}
},
}
</script>
这是使用JSONplaceholder作为示例,在您的情况下,您可以data
像最初一样添加一个附加项。
mounted()
此解决方案的好处是在调用完成(不能)之前阻止页面的呈现。
推荐阅读
- javascript - 单击按钮时如何更改插入符号?
- postgresql - 对于每个列表姓氏和他们监督的人,包括必须列出所有员工(即使是那些不监督任何人的人)
- java - Azure Functions - 如何使用默认“run()”方法中的“MultipartHttpServletRequest”类?
- sql - COUNT(*) 和 COUNT SQL 中的项目列表
- jmeter - JMeter 从站没有读取属性文件值
- ansible - 使用 ansible 比较 2 个 csv 文件
- sql-server - 为什么我不能在 sp_addextendedproperty 中使用内联表达式,但我可以使用变量?
- php - 从 Laravel Scout 分页链接()中删除查询参数?
- python - 嵌套字典中的 Python 总和值
- jenkins - Jenkins - 桌面应用程序的窗口大小大于 xvfb 的屏幕分辨率