inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 리액트 A-Z[19버전 반영]

리액트 불변성 지키기

Array 불변성에 대해 질문합니다

253

SS

작성한 질문수 1

0

앞선 강의의 Lists.js 파일에서 handleEnd 함수를 만들때,

리액트 불변성을 지켜주기 위해

const newTodoDate = todoData;

라는 코드를 사용해서 todoData를 newTodoData에 담아

준 후 newTodoDate.splice를 사용하는 것으로 이해했는데,

 

본 강의에서는

const array = [1,2,3,4]

const sameArray = array;

위와 같이 sameArray에 array를 담아 준 후

sameArray.push(5); 코드를 실행하니

array에도 5가 담기면서 불변성이 지켜지지 않은 것으로 보이는데요

 

둘은 어떤 차이가 있나요?

제가 무엇을 잘못 이해하고 있는지 궁금합니다

tdd redux react typescript Next.js

답변 1

1

John Ahn

안녕하세요

splice 메소드는 새로 복사를 해주기 때문에 불변성이 지켜지지만 push 메소드는 그렇지 않습니다.

원본 데이터를 변경하지 않는 메소드 => spread operator, map, filter, slice, reduce

원본 데이터를 변경하는 메소드  => splice, push

이렇게 구분해주시면 됩니다.

감사합니다.

0

SS

splice, push 둘 다 원본 데이터를 변경시키므로 불변성이 보장되는 메소드들이 아닌데, 그 둘 사이에서도 차이가 존재한다는 말씀이시죠? 감사합니다.

강의 소스 코드 압축 풀기 오류

0

90

1

런타임 에러 ㅠㅠ

0

105

1

강의대로 따라갔는데 에러보다 api키로 들어간 넷플릭스? 그런게 렌더링 되지 않습니다 ㅠ

0

114

1

안녕하세요 개발과 상관없는 질문입니다만

0

123

1

리액트 라우터 관련

0

119

1

react-beatiful-dnd에서 문제가 발생합니다.

0

108

1

react19에서는 react-beautiful-dnd가 설치되지 않습니다.

0

833

1

useEffect로 사용을 해도 되나요?

0

210

1

넷플릭스 오리지널 제외하고 슬라이드가 동작을 안합니다.

0

202

1

react 19의 useActionState가 더이상 isPending은 지원하지 않는 듯합니다

0

287

2

리액트 dockderfile 작성 시 COPY 질문

0

156

1

next.js에서부터는 react query 필요없는지

0

327

1

기능

0

204

1

오류가 안보여요

0

206

1

CSS

0

225

1

local storage

0

223

1

list컴포넌트 생성하기

0

230

1

검색어 입력 후 초기화하는 방법 궁금합니다!

0

343

1

Banner.css에 대해서

0

464

1

플러그인이 추천을 안해줍니다

0

334

1

마이너스버튼 테스트

0

285

2

리액트 서버 실행 오류

0

1169

2

오류메세지는 확인했는데 어떻게 고쳐야 할지 모르겠습니다 ㅠ

0

306

1

creactStore질문이요

1

293

2