리플로우 - 화면에 표시된 후 js를 사용해 돔을 조작하게 되었을 때 레이아웃 과정이 다시 수행되는 것
리페인트 - 브라우저가 paint()메소드를 호출해 렌더링된 요소들에 색상을 입히는 일을 페인트라 하는데 이걸 다시 수행하는것
💡리액트는 리플로우와 리페인트의 문제를 해결하기 위해 화면에 표시되는 돔과 동일한 돔을 메모리상에 만들고 돔 조작이 발생하면 메모리상에 생성한 가상 돔에서 모든 연산을 한 후 실제 돔을 갱신해 리플로우와 리페인트 연산을 최소화함
const App =()=>{
const hello = 'Hello World!";
return <div>{hello}</div>;
};
ex) 주차장 북쪽 출구를 나와 왼쪽으로 가세요. 12번가 출구에 도착할 때까지 15번 북쪽 도로를 타세요. 이케아를 끼고 우회전하세요. 직진하여 첫 번째 신호등에서 우회전 하세요. 다음 신호등을 지나 좌회전을 하세요. 우리 집은 #298입니다.
배열을 파라미터로 받고 각 요소들의 값에 2를 곱하는 함수
function double (arr) {
let results = []
for (let i = 0; i < arr.length; i++){
results.push(arr[i] * 2)
}
return results
}
프로그래밍시 what에 집중하는 방법
내 주소는 98 West Immutable Alley, Eden, Utah 84310니다.
위의 코드와 같은 결과
function double (arr) {
return arr.map((item) => item * 2)
}
출처: https://boxfoxs.tistory.com/430 [박스여우 - BoxFox:티스토리]
- 리액트로 웹 ui를 개발할 때는 컴포넌트 라고 불리는 작고 고립된 코드들을 이용해 구현하게 된다.
```jsx
const Title=()=>{
return <h1>Hello World</h1>;
const Button =()=>{
return <button>This is a Button</button>;
const App=()=>{
return(
<div>
<title/>
<button />
</div>
);
```
- 만들어진 Title과 Button 컴포넌트
- 반복 사용 가능
- 페이지를 제작할 App 컴포넌트