為什麼在JSX Props 中使用箭頭函數或Bind 是禁忌
使用React 時,避免使用箭頭函數或Bind 非常重要在JSX屬性中綁定。這種做法可能會導致效能問題和不正確的行為。
效能問題
在 JSX props 中使用箭頭函數或綁定會強制在每次渲染時重新建立這些函數。這意味著:
不正確行為
考慮以下範例:
onClick={() => this.handleDelete(tile)}
此程式碼將在每個渲染,導致React 將元件標記為髒並觸發重新渲染。即使tile prop沒有改變,元件也會重新渲染,因為箭頭功能不同。
最佳實踐
要避免這些陷阱,請使用以下最佳實踐:
constructor(props) { super(props); this.handleDelete = this.handleDelete.bind(this); }
const handleDelete = tile => { // Handle delete logic };
附加說明:
需要注意的是,箭頭函數在元件的其他部分(例如在 render 方法中)使用時完全沒問題。但是,在將事件處理程序指派給 JSX props 時應避免使用它們。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3