[英]React and Mobx - Load API data on load?
我必须验证用户是否已使用某些令牌登录,该令牌当前已在下一个示例中设置,以进行测试。
我有两个可以想到的选择。
选项1
在商店的构造函数上执行此操作:
export class MyStore {
@observable token = "sometoken";
@observable authenticated = false;
constructor() {
this.checkAuth();
}
@action
checkAuth() {
fetch("http://localhost:3001/validate/" + this.token)
.then(res => res.json())
.then(data => {
this.authenticated = data.validated;
});
// catch etc
}
}
选项2:
在使用数据componentDidMount
方法的componentDidMount
。
两种方法都起作用,但是处理这种状态的最佳实践到底是什么?
我肯定会选择第一个。 如果您不总是需要身份验证-例如某些部分是公共的-则不要在商店构造函数中调用this.checkAuth()
。 如果所有部分都需要认证,那么看起来像这样。 应该避免选择2,因为这会使服务器不必要地往返以重新验证已经验证的令牌。 通常,MobX提供了出色的工具来最小化生命周期方法的使用并编写更简洁的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.