npx create-react-app [폴더명]
cd [폴더명]
npm start
하면, [폴더명]디레고리에 React프로젝트가 생성되며,
실행후, http://localhost:3000 주소를 통해 실행결과 확인할 수 있다.
npx : 라이브러리 설치를 도와주는 명령어npm start로 시작해주면, 브라우저에서 바로 띄울 수 있음src/App.js내용을 => src/index.js가 => public/index.html에 넣어줌 (virtual DOM)node.js 먼저 설치하는 이유 : create-react-app라이브러리를 사용하기 위해 / npm 과 더불어 /
node_modules : 설치한 라이브러리를 전부 모아 놓은 폴더
public: satic 파일 보관함 (이미지 등)
src : 소스코드 보관함
package.json : 설치한 라이브러리와, 버전을 모아놓은 폴더

사이트는 codesandbox.io
위 사진에서 Tweet 태그가 willy's life로 보인다.
각각 어떻게 렌더링 될까?
컴포넌트는 JavaScript 함수와 유사
Component를 통해 UI를 재사용 가능한 개별적인 여러 조각으로 나누고, 각 조각을 개별적으로 살펴볼 수 있다.
Component에는 props라는 존재가 있다.
Props는 속성을 나타내는 데이터
name = "이정은"을 name propscontent = "나의 새 코딩"을 content props

일단, Component란? HTML을 반환하는 함수
Component를 만들고, 데이터를 보여주기

import React from "react"로 importexport default Potato로 export

import Potato from "./Potato"해당파일을 import한 후,<Potato /> 형식으로 붙여줌
react의 강점은 "재사용 가능한 Component"를 만들 수 있다는 점 (it means, Component를 계속해서 반복 사용할 수 있다는 의미)
Component -> Component / Component -> Children Component
Food Component에 name이라는 이름의 property를 "토마토"라는 value로 준 것!
props object 내부에는, name이라는 키가 있다
예) console.log(props) {name: "토마토"}이런식으로

인자를 넣는 방법 아래 두 방법은 똑같이 동작한다.


npm install prop-typessetState()호출을 한꺼번에 처리할 수 있음class App extends React.Component {} 이 안에!React.Component는 내부에 많은 것을 담고 있음extends from React.Component 한 이유 : 매번 component를 만들 때마다, 모든 것을 계속 구현할 수 없음. App Component는 React Class Component로부터 기본적인 것들을 모두 가져올 수 있음 (계속)return을 가지고 있지 않음render method를 가지고 있음
Class Component의 render메소드를 실행함return함 / 스크린에 표시됨React Component로부터 확장되며 스크린에 표시됨 / 그것을 render methodstate는 object
component의 데이터를 넣을 공간이 있으며, 데이터는 변할 수 있음
state의 상태를 변경할 때 : react가 render function을 호출하기를 원하지만 매번 가져오지 않으며, 직접 바꿀 수도 없도록 되어 있음
setState function을 호출setState를 호출할 때마다, react는 새로운 state와 함께 render function을 호출한다.

life cycle method는 기본적으로 react가 component를 생성하고, 수정하고, 없애는 일련의 방법render, constructor는 비동기 불가)render()는 React.Component의 하위 class에서 반드시 정의해야 하는 메서드
constructor()render()componentDidMount()render()componentDidUpdate()componentWillUnmont()여기부터 다시

render 메소드 또는 lifecycle 메소드에는 binding 필요 X / 다른 컴포넌트로 pass되지 않기 때문git initgit remote add origin [repo주소]git status로 확인 후git add .로 변경된 파일들 저장git push origin master