setGlobalNotifyInSync

提示

此方法从 v0.3.0 版本起可用。

默认情况下,为了兼顾 React 17 及以下版本的整体渲染性能,内部默认采取异步的通知变更方式,即 useSnapshotsync 选项默认值被设置为 false 以使用批处理的模式来合并渲染、优化性能。

如果你希望同步通知变更(将 useSnapshotuseSubscribe 等的 sync 默认设置为 true),可以通过 setGlobalNotifyInSync 方法来设置全局变更方式默认值。

提示

异步通知变更与输入框的 Composition 事件 冲突,导致输入框场景下,需要手动指定 synctrue 来避免输入法组词中断。虽然这能解决问题,但也带来了不小的心智负担。

所以如果你使用 React 18 及以上版本,可以全局设置为 true,在具备 React 18 内置的合并渲染的同时,也能大幅减轻使用上的心智负担。

import { setGlobalNotifyInSync } from '@shined/reactive'

// 在你的项目入口文件中调用,来设置全局通知变更的默认值为同步
setGlobalNotifyInSync(true);
提示

请注意,为了考虑兼容性和灵活性,setGlobalNotifyInSync 设置的是 sync 选项的全局默认值,如果在使用 useSnapshotuseSubscribe 时显式地传入了 sync 选项,则该处的通知行为以传入的 sync 选项为准。