임머의 집 - Phần 2
2571 단어 immerimmutationbeginnersreact
https://immerjs.github.io/immer/
농산물 생산
Immer sử dụng một chức năng mặc định thực hiện tất cả công viec.
produce(baseState, recipe: (draftState) => void): nextState
produce
baseState 및 một công thức(레시피)는 sử dụng để thực hiện tất cả các thay đổi trênbản nháp
được chuyển vào. Điều thú vị về Immer làbaseState
sẽ không bị ảnh hưởng, nhưngnextState
sẽ phản ánh tất cả các thay đổi được thực hiện 4 v 6 7.Bên trong công thức (recipe), tất cả các API JavaScript tiêu chuẩn có thể được sử dụng trên đối tượng nháp, bao gồm các phép gán trường, thao tác xóa và thay đổi mảng, các thao tác Map và Set như
draftState
, push
, pop
, splice
, set
, sort
, v.v.bất kự sỳ that that th way ³i nào trong s 그것은 không nh thi thiết phải xảy ra ở gố gốc, nhưng nó được phép sửa đổi bất kỳ thứ gì ở b ất kỳ ³ wâu sâu sâu bên trong bản nháp :
remove
.Lưu ý rằng bản thân hàm 레시피 thường không trả về bất kỳ thứ gì. Tuy nhiên, có thể trả về trong trong hờng hợp bạn muốn thế toàn bộ đối tượng nháp bằng một đối tượng khác, để biết thêm chi tiếmt, 6.7 x1.9.
import produce from "immer"
const baseState = [
{
title: "Learn TypeScript",
done: true
},
{
title: "Try Immer",
done: false
}
]
const nextState = produce(baseState, draftState => {
draftState.push({title: "Tweet about it"})
draftState[1].done = true
})
// the new item is only added to the next state,
// base state is unmodified
expect(baseState.length).toBe(2)
expect(nextState.length).toBe(3)
// same for the changed 'done' prop
expect(baseState[1].done).toBe(false)
expect(nextState[1].done).toBe(true)
// unchanged data is structurally shared
expect(nextState[0]).toBe(baseState[0])
// ...but changed data isn't.
expect(nextState[1]).not.toBe(baseState[1])
트라 뷔 디오 리에우 모이 Thuật ngữ
Reference
이 문제에 관하여(임머의 집 - Phần 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/buiminh15/gioi-thieu-ve-immer-phan-2-2feg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)