為什麼在JSX Props 中使用箭頭函數或Bind 是禁忌
使用React 時,避免使用箭頭函數或Bind 非常重要在JSX屬性中綁定。這種做法可能會導致效能問題和不正確的行為。
效能問題
在 JSX props 中使用箭頭函數或綁定會強制在每次渲染時重新建立這些函數。這意味著:
不正確的行為
考慮以下範例:
onClick={() => this.handleDelete(tile)}
此程式碼將在每個渲染上建立新函數,導致React 將元件標記為髒並觸發重新渲染。即使tile屬性沒有改變,元件也會重新渲染,因為箭頭函數不同。
最佳實踐
要避免這些陷阱,請使用以下最佳實踐:
constructor(props) { super(props); this.handleDelete = this.handleDelete.bind(this); }
const handleDelete = tile => { // Handle delete logic };
附加說明:
要注意的是,箭頭函數在其他部分使用時完全沒問題組件的,例如在render 方法中。但是,在將事件處理程序指派給 JSX props 時應避免使用它們。以上是為什麼應該避免在 JSX Props 中使用箭頭函數或綁定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!