Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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
Reactjs 使用内联样式时,React-diff算法是否失败_Reactjs_Inline Styles - Fatal编程技术网

Reactjs 使用内联样式时,React-diff算法是否失败

Reactjs 使用内联样式时,React-diff算法是否失败,reactjs,inline-styles,Reactjs,Inline Styles,在使用react内联样式时,大多数人所做的是使用“样式中的对象”属性。例如。 此react diff算法是否在此失败,因为每次重新渲染时都会创建新对象。是的,它将影响diff算法。 正如您所说,每次重新渲染时都要创建一个对象 但是,当您执行以下操作时 const style = {left: '54px', position: 'absolute'} <div style={style}></div> const style={left:'54px',positi

在使用react内联样式时,大多数人所做的是使用“样式中的对象”属性。例如。


此react diff算法是否在此失败,因为每次重新渲染时都会创建新对象。

是的,它将影响diff算法。

正如您所说,每次重新渲染时都要创建一个
对象

但是,当您执行以下操作时

const style = {left: '54px', position: 'absolute'}

<div style={style}></div>
const style={left:'54px',position:'absolute'}
您正在传递
style
的引用,该引用在组件的整个生命周期中保持不变


这与
箭头函数
相同。阅读更多关于此的信息

但是
https://facebook.github.io/react/docs/reconciliation.html
在同一类型的DOM元素中,他们告诉它只会更改颜色属性,我确信这一点。但是,我确信它每次都把它当作一个新的对象。如果可能的话,你可以提供一个工作例子,这样我就可以测试它并批准答案。