所以,我有一個名爲Project
的組件,它有一個叫ProjectDates
的孩子。 ProjectDates
收到其父母的開始/結束日期,並計算完成百分比。React - 在render()中有很多邏輯可憐的形式嗎?
我目前正在render()
中進行此計算,因此我不必在componentDidUpdate
和componentDidMount
中都這樣做。這是正確的,還是有更合適的生命週期掛鉤,我應該使用?
所以,我有一個名爲Project
的組件,它有一個叫ProjectDates
的孩子。 ProjectDates
收到其父母的開始/結束日期,並計算完成百分比。React - 在render()中有很多邏輯可憐的形式嗎?
我目前正在render()
中進行此計算,因此我不必在componentDidUpdate
和componentDidMount
中都這樣做。這是正確的,還是有更合適的生命週期掛鉤,我應該使用?
我認爲你所有的建議都是錯誤的。讓我們一個接一個:
1)componentWillMount。你可以在這裏有一些邏輯 - 但是這裏是not recommended來引入任何的側面依賴關係。所以在真正的世界中,當你通常不得不與後端交互時 - 它的幫助很小。必須有更好的選擇 - componentDidMount你沒有這種限制。
2)componentWillUpdate。在這裏你應該小心 - 不要結束無限循環。在這裏調用setState
is prohibited,因爲它可能再次調用componentWillUpdate
等等。考慮使用componentWillReceiveProps。
3)render。除了準備(呈現)組件內容的方法之外,此方法不應包含任何其他邏輯。考慮將您的「業務」邏輯移至componentWillReceiveProps
/componentDidMount
或者可能的構造函數。
我建議在決定你的架構之前,通過官方docs。
我不知道你的意思是「邏輯」,但不是,你不應該把所有的邏輯放在'render'中。 – Nocebo