2017-06-19 55 views
0

我只是想知道,为什么在React类组件渲染功能不会获取道具和状态作为它的参数。React类组件渲染功能与道具和状态作为参数

class App extends React.Component { 
    render({ prop1, prop2 }, { state1, state2 }) { 

    } 
} 

将是我oppinion比这样更漂亮:

class App extends React.Component { 
    render() { 
    const { prop1, prop2 } = this.props; 
    const { state1, state2 } = this.state; 
    } 
} 

Preact确实同时通过道具和状态呈现功能。 React不是有什么好的理由吗?

感谢您的任何答案!

回答

0

我不是Facebook团队的成员,但我认为这是因为单形。基本上,当函数接受完全相同的参数时,VM不必重新编译函数。这对于React很重要,因为propsstate非常易变化。单形态的一个很好的解释here

0

React组件和元素是不可变的。渲染发生时,它已经拥有了它在类中所需的所有数据,无论是状态还是道具。

您可以了解的是,这里https://facebook.github.io/react/docs/rendering-elements.html#updating-the-rendered-element

那么,这使得反应要做的就是确保它的一切现有的组件,当谈到时间来呈现它。不用担心传递适当的参数,因为您已经拥有了this范围内的所有可用内容。