Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Redux中处理大量文本输入更改_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 在Redux中处理大量文本输入更改

Javascript 在Redux中处理大量文本输入更改,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在用Redux构建一个小应用程序,我想知道所有的状态变化应该通过Redux还原器和中央存储传播到什么程度 例如,单文本输入在自己的组件中管理自己的状态(通过setState)是否更好?或者,应该针对这些输入中的每个按键事件触发操作。如果是这样,我想知道是否有性能问题 总的来说,在Redux中处理小UI更新(如按键事件)的最佳实践是什么?如果您不需要输入组件之外的这些输入值,可以将它们存储在本地状态,而不是使用Redux状态 大多数情况下,全局redux状态应包含许多组件使用的数据。如果应用程

我正在用Redux构建一个小应用程序,我想知道所有的状态变化应该通过Redux还原器和中央存储传播到什么程度

例如,单文本输入在自己的组件中管理自己的状态(通过
setState
)是否更好?或者,应该针对这些输入中的每个按键事件触发操作。如果是这样,我想知道是否有性能问题


总的来说,在Redux中处理小UI更新(如按键事件)的最佳实践是什么?

如果您不需要输入组件之外的这些输入值,可以将它们存储在本地状态,而不是使用Redux状态


大多数情况下,全局redux状态应包含许多组件使用的数据。

如果应用程序中全局需要文本输入值,最好将其存储在redux存储区中。如果你的应用程序是react redux应用程序,你可以将它存储在你的本地状态中,比如说,rect component state

以及是否在每次击键时分派操作,这取决于您的用例。假设您正在描述字段中写入内容。描述可能很长,您不需要在每次击键时为服务调用分派操作,因为这将导致大量不必要的服务调用。
解决此问题的一种方法是仅当用户在击键之间暂停时才分派操作。Debounce是一个javascript插件,可用于覆盖此类场景。使用debounce,可以配置调度操作的延迟。您可以在此处签出debounce插件:

Redux用于以可预测的方式管理状态。状态是指数据,它同样适用于来自API或客户端UI的数据

在一个小应用程序中,我会从所有状态的redux-ed开始,直到我真正遇到性能问题。这包括视觉状态、菜单、用户输入

redux状态树可以进行高度优化,通过还原器处理大量输入和更新。很大程度上是因为我们处理的是通过引用传递的不可变对象

我用Redux编写了管理州的生产应用程序,它可以每100毫秒处理一次WebSocket上的大型更新,并具有复杂的菜单操作,如可视日期组件,它们都很好地结合在一起

为了增强你的信心,这里有一个例子


最坏的情况是,如果您开始看到输入的性能问题,您可以对输入字段进行去模糊处理。

只需使用onBlur事件而不是onChange(这将节省几乎99%的渲染),为此,您需要传递defaultValue而不是prop中的值,并且维护全局props总是很好的,