React系列useSyncExternalStore怎么应用


这篇文章主要介绍了React系列useSyncExternalStore怎么应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇React系列useSyncExternalStore怎么应用文章都会有所收获,下面我们一起来看看吧。首先说明,useSyncExternalStore 这个 hook 并不是给我们在日常项目中用的,它是给第三方类库如 Redux、Mobx 等内部使用的。我们先来看一下官网是怎么介绍 useSyncExternalStore 的。useSyncExternalStoreis a new hook that allows external stores to support concurrent reads by forcing updates to the store to be synchronous. It removes the need foruseEffec免费云主机域名twhen implementing subscriptions to external data sources, and is recommended for any library that integrates with state external to React.翻译过来就是:useSyncExternalStore 是一个新的钩子,它通过强制的同步状态更新,使得外部 store 可以支持并发读取。它实现了对外部数据源订阅时不在需要 useEffect,并且推荐用于任何与 React 外部状态集成的库。useSyncExternalStore 这个新的 hook 的用法如下:其中,subscribe 是 external store 提供的 subscribe 方法;getSnapshot、getServerSnapshot 是用于获取指定 store 状态的方法,类似于 react-redux 中使用 useSelector 时需要传入的 selector,一个用于客户端渲染,一个用于服务端渲染;返回值就是我们在组件中可用的 store 状态。看完上面的翻译和 api 介绍,大家是不是有点一脸懵逼呢?????,说实话,我一开始看到这个 hook,也不知道该怎么使用它,翻阅了不少资料之后才知道它的使用正确姿势。接下来,我就结合自己的学习经历,通过几个简单的小 demo,为大家梳理一下 useSyncExternalStore 的用法以及原理:Concurrent 模式下使用 react-redux-7 出现状态不一致的情形;Concurrent 模式下使用 react-redux-8 解决状态不一致;在自定义 external store 中使用 useSyncExternalStore;当我们在项目中使用 react-redux-7 版本时,如果开启 Concurrent 模式,并且在 reconcile 过程中断的时候修改 store,那么就有可能会出现状态不一致的情形在示例中,我们可以很清楚的看到 store 状态不一致情形。其中,在组件 TextBox 中,我们使用 startTransition 包裹 store 修改状态的代码, 使得更新采用 Concurrent 模式:在组件 ShowText 中,我们通过一个 while loop,将组件的 reconcile 过程人为的调整为 > 5ms, 如下:

相关推荐: Python可视化tkinter怎么使用

这免费云主机域名篇文章主要讲解了“Python可视化tkinter怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python可视化tkinter怎么使用”吧!感谢各位的阅读,以上就是“Python可视化…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/29 19:17
下一篇 03/29 19:17

相关推荐