React 18

React_to-do_6

6. To-do_1 : 리액트 불변성 지키기 불변성이란 사전적 의미에서 값이나 상태를 변경할 수 없는 것을 의미한다. 자바스크립트는 두 가지의 타입이 있다. 1. 원시 타입 : Boolean, String, Number, null, undefined, Symbol 2. 참조 타입 : Object, Array 여기서 원시 타입은 불변성을 가지고 있고 참조 타입은 그렇지 않다. 자바스크립트에서는 원시 타입에 대한 참조 및 값을 저장하기 위해 call stack 메모리 공간을 사용하고 참조 타입인 경우 heap이라는 별도의 메모리 공간을 사용한다. 이 경우 call stack은 개체 및 배열 값이 아닌 메모리에만 heap 메모리 참조 ID를 저장한다. 즉, 원시 타입은 고정된 크기로 call stack 메모리..

React/To-do 앱 2023.01.31

React_to-do_5

5. To-do_1 : Drag and Drop 기능 추가하기 Drag and Drop 기능을 구현하는 순서로는 1. html 드래그 앤 드랍 api를 사용하여 원하는 목록을 드래그 가능하게 만든다. 2. 사용자가 드래그 할 때 적절한 애니메이션을 준다. 3. 사용자가 드래그를 멈췄는지 확인하고 여기에도 애니메이션을 준다. 4. 클라이언트가 목록을 재설정한 경우 항목의 위치를 새 항목으로 업데이트한다. >> 이것을 쉽게 구현할 수 있도록 해주는 모듈이 react-beautiful-dnd 이다. 따라서 이 모듈을 설치해보자~!! 후후 요로콤시 해주면 된다. 여기서 제공해주는 드래그 앤 드랍 api를 살펴보면 1. : 드래그 앤 드랍 하길 원하는 부분 전체를 감싸준다. 2,3 포함 2. : 드래그 앤 드랍하..

React/To-do 앱 2023.01.30

React_to-do_4

4. To-do_1 : 구조 분해 할당(Destructing) 구조 분해 할당이란 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 자바스크립트 표현식이다. 말 그대로 구조를 분해하는 것이라고 보면 된다. 구조 분해 할당은 clean code!! 깔끔한 코드를 위해서 한다. 객체 구조 분해 할당이 있고 배열 구조 분해 할당이 있는데.. 일단 그렇다는 것 정도만 알아두자 하하하ㅏ.... 다음에 이건 자세하게.. 봐야지ㅠㅠ 4. To-do_2 : From 부분을 위한 컴포넌트 생성하기 이전 포스팅에서 List 부분의 컴포넌트까지만 생성해줬다. 이제 입력 창을 담당하는 Form 부분의 컴포넌트도 분리를 해줄 것이다. List.js에서 했던 방식과 동일하므로 자세한 설명은 생략하겠다!! ..

React/To-do 앱 2023.01.29

React_to-do_3

3. To-do_1 : react-hooks란 무엇인고 React Hooks란 지금까지 사용한 class 없이 state를 사용할 수 있는 새로운 기능이다. 리액트에는 클래스 컴포넌트와 함수형 컴포넌트가 있었지!! 여기서 리액트는 주로 클래스 컴포넌트를 사용하고 리액트 훅스는 주로 함수형 컴포넌트를 사용한다... 클래스 컴포넌트와 함수형 컴포넌트를 비교해볼까 클래스 컴포넌트 : 더 많은 기능 제공, 더 긴 코드의 양, 더 복잡한 코드, 더딘 성능 함수형 컴포넌트 : 더 적은 기능 제공, 짧은 코드의 양, 더 심플한 코드, 빠른 성능 그렇다면 함수형 컴포넌트가 클래스 컴포넌트에 비해 적은 기능을 제공한다면.... 어떤 기능을 제공하지 못 하는걸까?? 리액트에는 생명 주기가 있다. 이는 Mounting > ..

React/To-do 앱 2023.01.28

React_to-do_2

2. To-do_1 : Filter 메소드를 사용해서 할 일 목록 지우기 x 버튼을 누르면 해당 할 일 목록이 사라지도록 해보자!!! 그러면 x 버튼을 클릭했을 때 클릭 이벤트가 발생하면서 함수를 호출해야겠지!? 그래서 이렇게 버튼 태그에 onClick 메소드를 이용하여 클릭을 했을 때, handleClick이라는 함수가 호출되도록 해주었고 넘겨줄 인자는 유니크한 값인 id!!!를 넘겨주어따아아아아 이제 handleClick 함수를 써보자 여기서 사용할 메소드는 filter() 메소드!!! 이게 무엇인고 하면... 주어진 함수의 조건을 만족하는 모든 요소를 모아서 새로운 배열로 반환하는 것이다. 좌... 이렇게 handleClick 함수를 구현했다. 우선 인자로는 지우려고 하는 목록의 id를 가져왔었고 ..

React/To-do 앱 2023.01.27

React_to-do_1

학습 목표 to-do 앱을 만들어 보자고!!!!! 1. To-do_1 : 할 일 목록 앱 컨테이너 생성 우선 기본적으로 불필요한 App.js , App.css , index.css의 내용을 지워줬다. 배경 색은 강의와 동일하게 aliceblue로 했고 이는 index.js 에서 index.css를 import 하기 때문에 화면에 그려질 수 있는 것이다! 이제 배경 위에 올라올 컨테이너를 만들 것이다. 리액트에 대해 알아보면서 클래스형 컴포넌트와 함수형 컴포넌트가 있다는 것을 배웠었다.. 우선 클래스형 컴포넌트로 만들어보자!! 자... 설명을 해보자면 리액트는 라이브러리였다. 그래서 {Component} from "react"는 리액트에서 컴포넌트를 가져온다는 뜻! 그리고 그 컴포넌트를 리액트에서 사용할 ..

React/To-do 앱 2023.01.27

리액트란_2

2. 리액트란_1 : 리액트의 기본 구조 설치한 리액트 폴더 구조를 살펴볼 것이다. 우선 index.html과 index.js는 이름을 바꾸면 안된다!! 그리고 src 폴더에 JS와 CSS 파일들을 넣으면 된다. Webpack은 여기에 있는 파일만 보기 때문에 이 폴더 이외에는 webpack에 의해 처리되지 않는다. +) webpack은 간단히 여러 자바스크립트 코드를 압축하여 최적화하는 것이라고 생각하면 된다! 또 알아야 할 파일은 Package.json 이는 해당 프로젝트에 대한 정보들이 들어있다. 라이브러리들의 이름과 버전들, 스크립트들이 명시되어있고 node_moduls 폴더가 삭제되어 있다면 npm install을 통해 설치하면 된다!!! 2. 리액트란_2 : 리액트 실행 계속했던 것처럼 리액트..

React 2023.01.26

리액트란_1

학습 목표 리액트 박살내기 to-do 앱과 netflix 앱을 구현해보자!!! 앞으로의 리액트 관련 포스트들은 인프런의 이 강의를 바탕으로 이루어 질 것이다!! 1. 리액트란_1 : 리액트는 프레임워크가 아닌 라이브러리 웹 앱을 만드는 Tool에는 react, vue, angualar 등이 있다. 이들의 가장 큰 차이점은 vue와 angualar는 프레임워크이며 react는 라이브러리이다. 그렇다면 프레임워크와 라이브러리의 차이점은 무엇일까?? 1. 프레임워크 : 앱을 만들기 위해 필요한 대부분의 것을 가지고 있음 2. 라이브러리 : 어떠한 특정 기능을 모듈화 해놓은 것 즉, 프레임워크는 라이브러리와 코드를 포함하고 코드는 라이브러리를 호출하는 형태이다. 따라서 내가 지금 사용하려고 하는 리액트는 프레임..

React 2023.01.26