Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 反应-处理支柱时的重型提升_Javascript_Reactjs - Fatal编程技术网

Javascript 反应-处理支柱时的重型提升

Javascript 反应-处理支柱时的重型提升,javascript,reactjs,Javascript,Reactjs,在调用render()之前,需要处理传递到React组件的一些道具 我非常确定我应该在构造函数和组件WillReceiveProps都调用的函数中进行此处理 我不认为将处理后的数据存储在状态中有任何好处,因为唯一可以改变它的是我的处理函数——当处理完成时,渲染已经即将发生,所以我不需要更改此状态来触发新的渲染 然而,我不确定将组件数据存储在道具或状态之外是否是一种反模式 我应该将此处理的结果存储在哪里?在状态或本地类属性中?您可以将此处理的结果存储为附加到的本地类属性。这不是一个反模式,因为它符

在调用render()之前,需要处理传递到React组件的一些道具

我非常确定我应该在构造函数和组件WillReceiveProps都调用的函数中进行此处理

我不认为将处理后的数据存储在状态中有任何好处,因为唯一可以改变它的是我的处理函数——当处理完成时,渲染已经即将发生,所以我不需要更改此状态来触发新的渲染

然而,我不确定将组件数据存储在道具或状态之外是否是一种反模式


我应该将此处理的结果存储在哪里?在状态或本地类属性中?

您可以将此处理的结果存储为附加到
的本地类属性。这不是一个反模式,因为它符合ES6最佳实践,而React是建立在ES6最佳实践之上的

请参阅此博客帖子:

这个。
使用React时使用最少的功能之一是
。人们经常忘记React只是带有ES2015语法的JavaScript。任何可以在JavaScript中执行的操作,都可以在React中执行。
的用例是存储更改不应触发重新渲染的值”。
-

您可以将此处理的结果存储为附加到此
的本地类属性。这不是一个反模式,因为它符合ES6最佳实践,而React是建立在ES6最佳实践之上的

请参阅此博客帖子:

这个。
使用React时使用最少的功能之一是
。人们经常忘记React只是带有ES2015语法的JavaScript。任何可以在JavaScript中执行的操作,都可以在React中执行。
的用例是存储更改不应触发重新渲染的值”。
-

就我个人而言,我喜欢尽量使我的组件尽可能简单。正如您所说,组件本身不需要跟踪状态,因为数据不会更改


我建议使用来处理数据的转换,并且只将表示就绪的数据传递给组件进行渲染。它不必存储在任何地方:它只是在转换完成之前不会渲染

就我个人而言,我喜欢尽量使我的组件尽可能简单。正如您所说,组件本身不需要跟踪状态,因为数据不会更改


我建议使用来处理数据的转换,并且只将表示就绪的数据传递给组件进行渲染。它不必存储在任何地方:它只是在转换完成之前不会渲染

我真的不明白你指的是什么“ES6最佳实践”。不管是哪种方式,最好在你的答案中包含你链接到的内容的相关部分。我不太理解你所指的“ES6最佳实践”。无论哪种方式,最好在答案中包含链接内容的相关部分。