【发布时间】:2020-05-21 09:00:23
【问题描述】:
有人可以向我解释什么是更好的方法吗?虽然我觉得使用方法 A 的重新渲染比使用方法 B 的要多,但我并没有真正在网上看到太多关于此的文章。
// Approach A
// ComponentA.jsx
export default () => {
. . .
const [user, token] = useSelector(({ auth: { user, token } }) => [user, token])
return (
. . .
)
}
// ComponentB.jsx
export default () => {
. . .
const [user, token] = useSelector(({ auth: { user, token } }) => [user, token])
return (
. . .
)
}
// ComponentC.jsx
export default () => {
. . .
const [user, token] = useSelector(({ auth: { user, token } }) => [user, token])
return (
. . .
)
}
// Entry.jsx
export default () => {
return (
. . .
<ComponentA />
<ComponentB />
<ComponentC />
. . .
)
}
// Approach B
// ComponentA.jsx
export default ({ user, token }) => {
. . .
return (
. . .
)
}
// ComponentB.jsx
export default ({ user, token }) => {
. . .
return (
. . .
)
}
// ComponentC.jsx
export default ({ user, token }) => {
. . .
return (
. . .
)
}
// Entry.jsx
export default () => {
const [user, token] = useSelector(({ auth: { user, token } }) => [user, token])
return (
. . .
<ComponentA user={user} token={token} />
<ComponentB user={user} token={token} />
<ComponentC user={user} token={token} />
. . .
)
}
我错了,真的没有区别,还是两者有更好的方法?
【问题讨论】:
-
在这种情况下只使用上下文。
-
你能在帖子回答中详细说明吗?
标签: reactjs react-hooks