我会避免使用组件状态,因为这可能难以管理并且容易出现难以解决的问题。
您应该使用cookies
或localStorage
来持久化用户的会话数据。您还可以使用闭包作为您的cookie
或localStorage
数据的包装器。
这是一个UserProfile
包含用户名的闭包的简单示例。
var UserProfile = (function() {
var full_name = "";
var getName = function() {
return full_name; // Or pull this from cookie/localStorage
};
var setName = function(name) {
full_name = name;
// Also set this in cookie/localStorage
};
return {
getName: getName,
setName: setName
}
})();
export default UserProfile;
当用户登录时,您可以使用用户名、电子邮件地址等填充此对象。
import UserProfile from './UserProfile';
UserProfile.setName("Some Guy");
然后,您可以在需要时从应用程序中的任何组件获取此数据。
import UserProfile from './UserProfile';
UserProfile.getName();
使用闭包将使数据保持在全局命名空间之外,并使其可以从应用程序的任何位置轻松访问。