# 觀念/技巧/踩雷分享 ### 基礎觀念 - **slice 與 splice 的差別:** slice 不會改變原本的 array,會直接切出我們要的區間,而 splice 是改變原本的 array,如果用一個新的變數來接 arr.splice(); 拿到的會是他切下來的部分,而不是我們想保留的。 ### API - 善用 useMutation 提供的 onCompleted / onError 來實現完成或錯誤訊息。 ### 表單 Form - 使用 redux-form 時盡量採用 handleSubmit 直接放在 button 的方法避免 nested-form 全部一起送出的問題。 - 當 invalid 的 form data 出現時,請直接在 submit button 給 disabled 而不要在 handleSubmit 裡面才檢查。 ### 實用技巧 - 瀏覽器會預設「重整網頁」時儲存使用者「原本滾動到的位置」,該特性可透過 `window.history.scrollRestoration` 訪問,預設是 auto,將它調成 manual 就能避免。 - 要確認頁面是否能夠返回,可以在上個頁面做 push 時帶入 state 到 location 中,頁面上無這個 state 時就不顯示 back button - `Array.from(Array(length))` 用來創建固定長度空 array ###### tags: `javascript`