일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- null
- js
- 자바스크립트
- todolist
- Number
- 모던
- 투두리스트
- react
- 라우터
- 컴포넌트
- this
- 타입스크립트
- 모던 자바스크립트
- let
- function
- Interface
- 리액트
- ES6
- 함수
- redux
- 데이터 타입
- var
- VUE
- BIND
- typescript
- CSS
- const
- 객체
- 스코프
- 뷰
- Today
- Total
목록react (6)
홍준혁
안녕하세요 오늘은 제가 평소에 궁금했던 주제로 글을 써보려고 합니다. Context API의 기능과 왜 사용하는지, Context API의 리렌더링 이슈란 무엇인지 그리고 Redux를 대체할 수 있는지. 위 내용을 설명하는 글을 작성할려고 합니다. 우선 Context API를 사용할려면 그 개념을 알아야 합니다. Context가 나온 이유 React는 단방향 데이터 흐름입니다. 즉, 부모 컴포넌트에서 자식 컴포넌트로 데이터를 직접 전달해야 합니다. 이 데이터 흐름은 간단해 보입니다. 그저 위에서 아래로 흐르니 말입니다. 실제로 단방향 데이터 흐름은 코드를 이해하기 쉽고 데이터 추적과 디버깅이 쉽습니다. 하지만, 이러한 흐름이 깊어진다고 생각해봅시다. 위 그림처럼 1이라는 컴포넌트에서 6이라는 컴포넌트에 ..
첫 번째 기능 - Automatic Batching setState는 호출될 때마다 리렌더링이 일어나게 된다. 정말로 그럴까? 사실 리액트에서는 조금 다르게 동작한다. 호출될 때마다 리렌더링을 작업하게 된다면 정말 비효율적인 방법일 것이다. 다음 코드를 보도록 하자. function App() { const [count, setCount] = useState(0); const [flag, setFlag] = useState(false); function handleClick() { setCount(c => c + 1); // 리렌더링 발생 setFlag(f => !f); // 리렌더링 발생 set... // 리렌더링 set... // 리렌더링 set... // 리렌더링 set... // 리렌더링 set...
우리가 웹사이트를 만들 때 화면이 작아지면 구성요소가 깨지는 현상을 많이 겪어봤을 것이다. 나 또한 그랬고 이를 해결하기 위해서는 반응형 웹페이지로 만들어야 한다는 설루션이 있었다. 또, 모바일 , 테블릿 등에서 웹페이지를 접속할 때, 각기 다른 페이지를 보여줘야 하는데, 반응형을 사용하지 않는다면 각 페이지마다 새로운 파일을 만들어서 각기 다른 버전으로 관리해야 하는데, 그렇게 되면 번거로울 수 있기 때문에 한 파일에서 pc , 모바일 , 태블릿 등을 고려한 웹사이트를 만들 수 있게 반응형 웹페이지를 만드는 것이다. 우리는 미디어 쿼리 라는것을 사용해서 반응형 웹페이지를 만들어 볼 것이다. 미디어 쿼리의 개념은, 각 화면의 비율마다 각각 다른 화면을 보여주자 라는 개념이다. 스타일 시트 내에서 @med..
타입 스크립트는 자바스크립트의 슈퍼셋이다. 타입 스크립트를 사용하면 개발자 입장에서 좋은 코드를 작성할 수 있게 된다. (바보 같은 오류를 방지해준다.) 그래서 리액트에서 타입 스크립트를 사용해보자. 먼저 디렉터리를 만들고 CRA를 해준다. 이렇게 해주면 자동으로 타입 스크립트가 설정된 리액트가 프로젝트가 만들어진다. 기본적으로 만들어진 프로젝트에 App과 index를 남기고 다 지워도 무방하다. - 이렇게 파일 구조를 생성해주자. 그다음에 APP에서 styled-components를 이용해서, import styled, { createGlobalStyle } from 'styled-components'; styled와 createGlobalStyle을 선언해주자. 이렇게 되면 GlobalStyle컴포넌..
먼저 프로젝트에 리액트를 설치를 해주도록 하자 vscode에서 기본으로 지원하는 터미널에 git bash를 연결하였다. create-react-app todolist create-react-app을 사용해서 todolist라는 파일에 react세팅을 해주도록 하자. 빌드에 성공하면 Happy hacking이라는 글이 뜬다. 이제 happy hacking글 위에 명령어(cd , yarn start)를 순서대로 치면 로컬호스트로 서버가 열린다. 이제 리액트 웹 서버가 열린것을 볼 수 있다. 브라우저를 보면 React App이라는 웹이 생긴것을 볼 수 있다. 이제 리액트 앱을 만들었으니 설정을 해주도록 하자. App.css의 내용을 모두 지워주고,App.js에서 이렇게 설정을 해주자. 그렇게 저장을 하고 리액..
팀 프로젝트인 HongLim(친구 재현이와 나)에서 TodoList를 만들기로 했다. 저번에 만들었던 ToDoList를 개편하고 쌓인 지식으로 더 좋은 웹사이트를 만들려는 취지로 개발을 시작한다. honglim001.github.io/html-project 1/start.html Start_ToDoList honglim001.github.io 위의 웹사이트는 전에 재현이와 만들었던 웹사이트이다. 코드도 더럽고 이상하지만 그래도 아무것도 모르던 우리가 뭔가를 만들었다는 것에 만족한다. (제이쿼리도 써가면서 ㅋㅋ) 이번에는 리액트를 활용해서 개발하려고 한다. 리액트는 깊게 공부하지 않고 가볍게 보기만 한 정도라서 이해 못할 부분이 많겠지만 그래도 한번 배워본다는 목적과 부딪혀본다는 느낌으로 개발해보려고 한다.