我正在使用 React 和 Redux 构建一个单页应用程序。当然,这需要一个数据后端。现在我们正在研究哪种 api 架构最好,但我无法就哪种 api 架构最适合 React/redux 应用程序达成共识。
现在我知道您基本上可以以任何您喜欢的方式使用数据。但仍然有明显的市场领导者,例如 mobx 上的 redux。这并不会让它们变得更好,但至少知道偏好在哪里是件好事。
所以我的问题是:目前 React/Redux 应用程序最常使用哪种 api 架构?
最佳答案
根据我们的经验,最好不要让 API “适合”react/redux,反之亦然。 只需使用 thunk-action-creators 并以任何形状或形式处理 API 调用。
这是一个人为的示例:
export function getUserById (userId) {
return async dispatch => {
dispatch({ type: 'REQUEST_USER_BY_ID', payload: userId })
try {
const user = await api.get(`/users/${userId}`)
ga('send', 'event', 'user', 'profile', 'view')
dispatch({
type: 'LOAD_USER',
payload: user
})
dispatch({
type: 'NOTIFY_SUCCESS',
payload: `Loaded ${user.firstname} ${user.lastname}!`
})
}
catch (err) {
dispatch({
type: 'NOTIFY_ERROR',
payload: `Failed to load user: ${err.message}`,
})
}
}
}
这种方法的最大好处是灵活性。 API 对消费者完全不抱任何意见。 您可以在任何页面上以不同的方式处理错误、添加重试逻辑、回退逻辑。 轻松将需要并行或顺序调用多个不同 API 的操作粘合在一起。
我们尝试了许多方法,例如“redux over the Wire”和relays/apollos“将组件绑定(bind)到查询”。 这个被认为是最灵活、最容易理解和重构的。
关于reactjs - 目前对于哪种 api 设计适合 React/Redux 应用程序达成共识吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39740883/