我正在制作一個具有不同頁面的專案,頁面的每個頁面/主要組件都包含許多子組件。我一直在將資料作為道具傳遞,這是我了解到的單一事實來源,但我認為我誤解了這個概念,或者不是(?),因為我也將匯入的組件從父組件作為道具傳遞給使用它們的子組件。
例子:
import ReusableComponent from ../path
import SubComponent from ../differentpath
export default function MainComponent() {
<SubComponent Comp={ReusableComponent} />
}
這是錯誤的嗎?我可以直接將組件匯入子組件,同時使用道具保持一個事實來源嗎?唯一的真理來源的想法讓我大吃一驚。謝謝!我只是不想繼續,因為重構太多了。
uj5u.com熱心網友回復:
擁有一個單一的“事實來源”對于可能發生變化的值很有用,您需要同步這些值。例如,如果您想跟蹤用戶在任何地方單擊了多少次,您可以在根組件中為該狀態初始化一個狀態,并將其作為道具傳遞到需要的任何地方。
但是靜態可重用組件不會改變(至少,如果它們設計合理,則不會)。組件是直接在它使用的模塊中匯入,還是在不同的模塊中匯入并作為道具傳遞下來,都沒有區別;無論哪種方式,它的作業原理都是一樣的。因此,通常只在將要使用的地方匯入組件是有意義的。
import ReusableComponent from ../path
export default function SubComponent() {
// ...
return (
<div>
<ReusableComponent />
// ...
如果需要,您可以將組件作為 props 向下傳遞,但是當組件是動態的時,該技術通常很有用;如果要在后代中使用的組件是完全靜態的,那么直接在后代中匯入它會更有意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/529333.html
標籤:反应反应道具反应组件