1 引言 unstated 是基于 Class Component 的数据流管理库,unstated-next 是针对 Function Component 的升级版,且特别优化了对 Hooks 的支持...unstated unstated 解决的是 Class Component 场景下组件数据共享的问题。...unstated 更强大的功能。...unstated-next unstated-next 用 40 行代码号称 React 数据管理库的终结版,让我们看看它是怎么做到的!...3 精读 unstated 我们再梳理一下 unstated 这个库做了哪些事情。 利用 Provider 申明作用范围。
这时候可以选择Unstated[2] ?...Unstated核心代码只有40行,为项目带来规范的状态管理约束的同时不会引入额外的学习成本 只有对于更复杂的项目,才应该考虑Redux、Mobx这类解决方案。...用户交互」的状态,根据项目类型、复杂度选择合适方案 Redux虽好,可不要滥用哦~ 参考资料 [1] RFC 5861: https://tools.ietf.org/html/rfc5861 [2] Unstated...: https://github.com/jamiebuilds/unstated ----
这时候可以选择Unstated[2] Unstated核心代码只有40行,为项目带来规范的状态管理约束的同时不会引入额外的学习成本 只有对于更复杂的项目,才应该考虑Redux、Mobx这类解决方案。...用户交互」的状态,根据项目类型、复杂度选择合适方案 Redux虽好,可不要滥用哦~ 参考资料 [1] RFC 5861: https://tools.ietf.org/html/rfc5861 [2] Unstated...: https://github.com/jamiebuilds/unstated end
用到的库 1. unstated-next 200 bytes to never think about React state management libraries ever again....卡颂注:用React的同学可以去了解下unstated和unstated-next。看完这2个源码不到40行的状态管理库,你会感叹:React简单状态的管理本该这样。...unstated-next 主要是利用 React.createContext 状态共享,将需要注入 Provider 的状态以及状态更新操作抽象到 hook 中,提供给 Function Component
的状态管理是一个缤纷繁杂的大世界,光我知道的就不下数十种,其中有最出名immutable阵营的redux,有mutable阵营的mobx,react-easy-state,在hooks诞生后还有极简主义的unstated-next...unstated-next是一个极简的框架,对于React Hook做了一层较浅的封装。...unstated-next unstated-next其实很不错了,源码就40来行。最大程度的利用了React Hook的能力,写一个model就是写一个自定义hook。
40、Unstated https://unstated.io/ 一个新的状态管理类库 unstated.js:简单易用/合理。...和之前的 state 管理库思路完全不同,这个unstated主打 local state(不是全局store,一个小改动导致整棵树 rerender),多个 local state 之间也可以共享,...兼具了redux的易用性与flux的合理性,令人耳目一新;unstated完全就是为React设计的,“足够React”,让你感觉不到在用第三方组件。
Child() { const { count } = useContext(CountContext); } 用法都是官方 API,显然也是毫无争议的,但问题是数据与 UI 不解耦,这个问题 unstated-next...数据流与组件解耦 unstated-next 可以帮你把上面例子中,定义在 App 中的数据单独出来,形成一个自定义数据管理 Hook: import { createContainer } from..."unstated-next"; function useCounter() { const [count, setCount] = useState(); return { count, setCount...合并更新 useReducer 可以让数据合并更新,这也是 React 官方 API,毫无争议: import { createContainer } from "unstated-next"; function
40 Unstated https://unstated.io/ 一个新的状态管理类库 unstated.js:简单易用/合理。...和之前的 state 管理库思路完全不同,这个unstated主打 local state(不是全局store,一个小改动导致整棵树 rerender),多个 local state 之间也可以共享,...兼具了redux的易用性与flux的合理性,令人耳目一新;unstated完全就是为React设计的,“足够React”,让你感觉不到在用第三方组件。
的状态管理是一个缤纷繁杂的大世界,光我知道的就不下数十种,其中有最出名immutable阵营的redux,有mutable阵营的mobx,react-easy-state,在hooks诞生后还有极简主义的unstated-next...unstated-next是一个极简的框架,对于React Hook做了一层较浅的封装。...image.png unstated-next unstated-next其实很不错了,源码就40来行。最大程度的利用了React Hook的能力,写一个model就是写一个自定义hook。
40、Unstated 地址:unstated.io/ 一个新的状态管理类库 unstated.js:简单易用/合理。...和之前的 state 管理库思路完全不同,这个unstated主打 local state(不是全局store,一个小改动导致整棵树 rerender),多个 local state 之间也可以共享,...兼具了redux的易用性与flux的合理性,令人耳目一新;unstated完全就是为React设计的,“足够React”,让你感觉不到在用第三方组件。
props,还可以有 model,甚至是页面级的 model 数据,至于数据的处理方案,请向下细读 数据管理 整体使用的是 context 的一个方案,包裹在最外层,在里层去消费数据 用到了一个三方库 unstated-next...[1] 用法很简单,demo // page.ts import { createContainer } from 'unstated-next'; const useContainer = ()...相比较 redux 来说,unstated-next 的 size 更小,使用起来更简单 相比较 context 来说,它本身就还是 hook,封装在自定义 hook,或者其他地方,都不是一种很好的实现...来处理背景图的问题,简单好用 作者:Lyndon https://juejin.cn/post/7205882710332620857 参考资料 [1] https://www.npmjs.com/package/unstated-next
hand-code a well-known algorithm: 但是不要试图硬编码实现常见算法: int max = v.size(); // bad: verbose, purpose unstated
Context API 来做状态管理: image.png 最近 hooks 用得比较爽(参考上一篇文章: 组件的思维),我就想配合 Context API 做一个状态管理器, 后来发现早就有人这么干了: unstated-next...其他类似的方案 unstated unstated-next 的前身,使用 setState API react-hooks-global-state 扩展 React Context API — A...unstated: 可能是简单状态管理工具中最好的 ---- Redux unstated 是一个极简的状态管理方案,其作者也说了不要认为unstated 是一个 Redux killer, 不要在它之上构建复杂的工具
git diff HEAD show diff of all staged or unstated changes.
git diff HEAD show diff of all staged or unstated changes.
Context流派 这里的Context指的是react自带的Context api,基于Context api打造的数据流方案通常主打轻量、易用、概览少,代表作品有unstated、constate等
例如使用 useRouter 取代 withRouter, useSpring 取代旧的 Spring Render Props 组件 取代容器组件 状态管理器: use-global-hook, unstated
剩下的就是利用react context api或者最新的hook特性,主打轻量,上手简单,概念少的方案,如unstated-next,reactn、smox、react-model等。
. ✓ checking for unstated dependencies in examples ... ✓ checking examples (444ms) ✓ checking for
领取专属 10元无门槛券
手把手带您无忧上云