Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于共享state hooks #1

Closed
winixt opened this issue Mar 27, 2019 · 3 comments
Closed

关于共享state hooks #1

winixt opened this issue Mar 27, 2019 · 3 comments

Comments

@winixt
Copy link

winixt commented Mar 27, 2019

斗胆提几个问题,不知是否过于愚笨:

  1. 为什么实现共享 state 一定要用 context,模拟更新有什么弊端吗?比如通过 proxy 监听 Object 的变更,用 hooks 实现“强制刷新“,进而实现 共享 state。https://github.com/winixt/restate
  2. 为什么共享数据都要放到一个 Provider?根据功能,分模块实现,可维护性不也更好吗?当然从长远(2019年末)来说,react 官方是这么推荐的,react 正在往这个方向发展。
@Jokcy
Copy link
Owner

Jokcy commented Mar 29, 2019

  1. 使用observe的数据说明这个数据是mutable的,而对于React来说,更推荐的是使用inmutable的数据,因为React是根据props和state的变化来探测一个组件是否需要执行更新的,而对于一个mutable的数据,改变来他的内容,但是他本身没有变化,如果拿他作为props,则会导致组件可能被shouldComponentUpdate误认为不需要更新的。

  2. 确实,现在使用Provider在顶层使用context并不是一个很好的选择,因为context变化之后他的子树层级越多,他的性能消耗越大。所以react-redux也提出了想要一个觉解这个问题的方案,就看react官方会不会考虑来。目前来说,如果你不依赖redux,你自己实现store,是完全可以根据你自己的情况把context尽量放在低层级的,这样可以减少context的更新带来的性能影响。这里没有什么必须要,你完全可以根据自己的情况来实现。

@winixt
Copy link
Author

winixt commented Mar 29, 2019

�多谢多谢,受教了🙏

@Jokcy
Copy link
Owner

Jokcy commented Jan 1, 2022

这是一个段落

这是一个引用

样式应该还不错,这样的这样的code

function x() {
  return a + b;
}

@Jokcy Jokcy closed this as completed Jan 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants