2017-06-19 56 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範圍內的所有可用內容。