在 React 中管理同一元件的多個例項中的狀態
當您使用 react 並擁有同一元件的多個例項時,管理狀態可能會變得很棘手。根據元件需要互動的方式,您需要以不同的方式處理狀態。這是我發現效果很好的方法。 獨立例項:將狀態保留在元件內部如果您的元件不需要相互通訊,最好將它們的狀態保留在元件內。這樣,每個例項都有自己的狀態,其中一個例項的更改不會影響其他例項。function counter() { const [count, setcount] = usestate(0); return ( <div> <p>count: {count}</p> <button onclick="{()"> setcount(count + 1)}>increment</button> </div> );}// usage<counter></counter> // instance 1<counter></counter> // instance 2登入後複製在這裡,每個 counter 元件都會跟蹤自己的計數。因此,如果您單擊一個計數器中的按鈕,則不會更改另一個計數器中的計數。 依賴例項:管理父元件中的狀態但是,如果元件需要共享某些狀態或以協調的方式工作,最好將狀態移至父元件。父級可以管理共享狀態並將其作為 props 傳遞下來。這可確保所有例項保持同步並順利協同工作。function Parent() { const [sharedCount, setSharedCount] = useState(0); return ( <div> <p>Total Count: {sharedCount}</p> <counter count="{sharedCount}" setcount="{setSharedCount}"></counter><counter count="{sharedCount}" setcount="{setSharedCount}"></counter></div> );}function Counter({ count, setCount }) { return ( <div> <p>Count: {count}</p> <button onclick="{()"> setCount(count + 1)}>Increment</button> </div> );}登入後複製這種方法之所以有效,是因為當狀態位於父元件中時,對該狀態的任何更新都會觸發所有例項的重新渲染,確保它們都顯示最新的 ui。如果將狀態單獨儲存在每個例項中,則只有狀態發生更改的例項才會重新渲染,從而導致例項之間的 ui 不一致。我的專案中的示例我在構建手風琴元件時發現了這一點。這是我自己工作中的兩個例子:獨立手風琴例項:示例。在此設定中,每個手風琴例項獨立工作。依賴的手風琴例項:示例。在此版本中,所有手風琴例項相互依賴並保持同步。快速回顧如果元件單獨工作,請將狀態儲存在每個元件內。如果他們需要共享狀態或以協調的方式一起工作,請在父級中管理狀態。在構建這些手風琴示例時,這種方法對我產生了很大的影響。希望對你也有幫助! 以上就是在 React 中管理同一元件的多個例項中的狀態的詳細內容,更多請關注我的其它相關文章!
相關文章
- React中的高階元件,無狀態元件,PureComponentReact元件
- React 回憶錄(四)React 中的狀態管理React
- React 深入系列1:React 中的元素、元件、例項和節點React元件
- 在Windows中執行多個MySQL例項WindowsMySql
- (譯)詳解在React中跨元件分發狀態的三種方法React元件
- React中的另一種狀態管理方案ValtioReact
- React之配置元件的props(兩個例項)React元件
- React的狀態管理React
- 一個例項中,多個synchronized方法的呼叫synchronized
- React Native 中的狀態列React Native
- 如何直觀的在JavaScript中管理狀態JavaScript
- Blazor中的無狀態元件Blazor元件
- 同一會話中的多個 WebRequest會話Web
- Linux中執行多個MySQL例項LinuxMySql
- 在Cucumber中應用 PicoContainer容器實現元件的例項化AI元件
- React獲取元件例項React元件
- 記前端狀態管理庫Akita中的一個坑前端
- 悟空活動中臺 - 微元件狀態管理(上)元件
- 3.4.4 檢視例項的靜默狀態
- React元件的狀態及生命週期事件React元件事件
- PDM系統在技術狀態管理中的應用研究
- 如何區分例項化網格中的每個例項
- java狀態模式例項解析Java模式
- React 狀態管理:狀態與生命週期React
- 在例項中呼叫 Invoke 型別的類型別
- 優雅的在React元件中註冊事件React元件事件
- react之redux狀態管理ReactRedux
- 2020 年 React 狀態管理React
- React狀態管理之ContextReactContext
- 我理想中的狀態管理工具
- 當多個UITextView使用同一個UIView例項出現凍屏現象UITextView
- javascript將字串中的多個空格替換為一個空格的正則例項JavaScript字串
- 分享一個Laravel中的管道的使用例項Laravel
- 模板與例項在系統中的應用
- JVM中java例項物件在記憶體中的佈局JVMJava物件記憶體
- React中的高階元件React元件
- 達夢資料庫例項的狀態和模式資料庫模式
- React hooks 狀態管理方案解析ReactHook