存用户信息,应该用对象,还是不同的字段呢?
tom-and-jary opened this issue · 2 comments
tom-and-jary commented
方案1:
(用户信息的每个字段,分别使用一次useState)
const useUser = () => {
const [id, setId] = useState('');
const [token, setToken] = useState('');
const [username, setUsername] = useState('');
const [email, setEmail] = useState('');
const [points, setPoints] = useState('');
const [avatar, setAvatar] = useState('');
..省略号...
方案2
(把用户信息放在一个对象里,只用了一次useState)
const useUser = () => {
const [user, setuser] = useState(
{
id:'',
token:'',
username:'',
email:'',
points:'',
avatar:'',
}
);
..省略号...
想问问,哪个方案更好, 应该怎么判断自己用哪个方案呢?
如果用第一种,字段太多了, 会不会用hox 会导致性能低下, 浪费很多内容呢?
谢谢
brickspert commented
建议方案 2,同一类的 state 放一起就好了。
awmleer commented
这个问题和hox是没有关系的,完全是React Hooks的用法问题,而且这两种方案都有一定的合理性,至于使用那种方案更好我觉得需要看具体的业务逻辑,不过大部分情况下方案2就可以了
关于性能上的考虑,要综合很多因素来看,单纯看这里的state定义其实性能开销的区别几乎可以忽略不计