불변 불변 데이터 반응

 

1. 왜 불변의 데이터를 사용 하는가?

에서 렌더링 구성 요소의 성능 반응 때문에 당신은 이전 데이터를 사용하여 새로운 데이터를 생성 할 때, 동시에 이전 데이터를 사용할 수 및 변경 확인합니다.

그것은 단순히 새로운 변수에 할당 된 경우, 새 개체 및 기존 개체는 다른 이름은, 사실, 같은 메모리 주소 그냥 다른 이름입니다 차지하고있다

이것은 다시 렌더링 성능에 영향을 미쳐, 또는 응답에 반응하는 DOM을 업데이트 할 수 없습니다.

2 만 깊은 복사는 특히 복잡한 구조에 메모리와 CPU를 많이 차지합니다, 어떻게 대처 하는가?

Immutable.js 불변 데이터 보드를 도입하는 구조는, 오직 하나 개의 노드 오브젝트가 변경되면, 하나 개의 노드를 공유하고 영향 노드 수정

다른 노드는 공유.

리는 영구 데이터 구조의 집합을 달성하기 위해, 페이스 북 엔지니어 Byron3年时间打造입니다,

예를 들면 : 등 컬렉션 목록지도 설정 기록, 데이터 및 일반 개체를 다른를 액세스

예를 들면 : 오브젝트 map.get ( '키') 값

예컨대 : array.get (0)에 대응하는 어레이 [0]

도 3의 일례

'불변'에서 가져 오기 {지도};

{(A =지도를 보자

  선택 : '사용자',

  필터 :지도 ({이름 : '김'})

})

( '사람'을 '선택') B = a.set하자;

 

===의 B // 거짓

a.get ( '필터') === b.get ( '필터'); // 사실.

 

또는 ES6 구조 할당을 사용

obj1 = { ...obj1 , a:2 } // 表示 深复制,注意,旧对象必须写在前面。
obj1 = { ...obj1 } // 表示 浅复制
 

 

역시 4

왜 JSON.stringify () JSON.parse ()는이, 왜 충분히 소진 Immutable.js 약간의 성능 향상의 노동 보상보다 더 큰 느낌 반응하는 새로운 객체를 구축, 이해가 안되지. .

 

추천

출처www.cnblogs.com/the-last/p/11441147.html