React JS 기초
미루고 미루고 미루다 드디어 마음잡고 다시 공부를 시작해보았는데...
내가 강의를 끝까지 듣고 정리할 수 있을지 모르겠지만 일단 시작이 반이라니까~
반은 한거 아닐까 ㅎㅎ
해당 정리는 노마드코더의 https://nomadcoders.co/react-for-beginners 강의를 직접 수강후 정리하였습니다
ReactJS로 영화 웹 서비스 만들기 – 노마드 코더 Nomad Coders
React for Beginners
nomadcoders.co
✨ ReactJS를 사용하는 이유
- 상위 1만개의 웹사이트 중 45%가량은 React를 사용
(에어비앤비, 인스타그램, 페이스북, 넷플릭스) - 페이스북이 ReactJS를 만들었고, reactJS에 막대한 투자를 하고있음
금방 폐기되지 않을 가능성 높음. - 큰 커뮤니티를 가지고 있음. Javscript와 가장 가까운 언어
(기술을 배울때는 그 기술에 대한 생태계가 존재하는 것이 좋음)
✔️ 필요선행 지식 [바닐라 JS로 크롬앱 만들기(html, css, javascript)]
https://nomadcoders.co/javascript-for-beginners
바닐라 JS로 크롬 앱 만들기 – 노마드 코더 Nomad Coders
Javascript for Beginners
nomadcoders.co
✔️ 설치
[브라우저 (ex. 구글 크롬, 브레이브 , 사파리 등)]
Chrome 웹브라우저
더욱 스마트해진 Google로 더 간편하고 안전하고 빠르게.
www.google.com
[텍스트 에디터(ex. visual studio code)]
https://code.visualstudio.com/
Visual Studio Code - Code Editing. Redefined
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.
code.visualstudio.com
✨ Javascript vs React JS
1. Javascript 카운터만들기
① ui 그리기
<button id="btn">click me</button>
const button = document.getElementById("btn");
function handleClick() {
console.log("i have been clicked");
}
button.addEventListener("click", handleClick);
click me 버튼을 클릭했을 때, console에서 i have been clicked라는 텍스트를 확인 할 수 있습니다.
② click me 버튼을 클릭했을 때 ui의 숫자가 바뀌도록 수정
<span>Total clicks: 0</span>
<button id="btn">click me</button>
let counter = 0;
const span = document.querySelector("span");
const button = document.getElementById("btn");
function handleClick() {
// console.log("i have been clicked");
counter = counter + 1;
span.innerText = `Total clicks: ${counter}`;
}
button.addEventListener("click", handleClick);
📌 span.innerText를 통하여 ui의 숫자가 클릭한 횟수만큼 업데이트 된다.
📌 addEventListener를 통해 button에 click이벤트가 발생했을 경우 handleclick 함수가 실행되게 요청한다.
2. React 카운터만들기
<script src="https://unpkg.com/react@17.0.2/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.production.min.js"></script>
임시로 React를 설치하지 않고 링크만 import하여 테스트하는 방법
링크 import 후 console에 React를 입력했을 때, React 코드가 확인되면 import가 잘 된것
① React JS element 생성
기존 스크립트로 작성한 코드를 React로 재구성(단, 기존 코드처럼 html코드를 직접 작성하지 않음)
Javascript와 React JS를 이용하여 element 생성
<div id="root"></div>
const root = document.getElementById("root");
const span = React.createElement("span");
ReactDOM.render(span, root);
ReactDOM.render: React element를 가지고 HTML로 만들어 배치, 사용자에게 보여준다.
'HTML root안에 span을 위치시킨다'는 의미로 해석
개발자 도구를 통해 div id="root" 태그 안에 span 요소가 생긴것을 확인 할 수 있다.
const root = document.getElementById("root");
const span = React.createElement("span", { id: "cute-span" });
ReactDOM.render(span, root);
createElement에 더 작성할 수 있는 argument
argument로 둘 수 있는 것: span의 property (ex. classname, id, style, event listener ... )
span에 id="cute-span"이 생긴 것을 확인할 수 있음.
const root = document.getElementById("root");
const span = React.createElement(
"span", //html element tag 이름
{ id: "cute-span", style: {color:'red'} }, //property, props가 포함된 object
"Hello, Im a span" //content
);
ReactDOM.render(span, root);
컬러 스타일 style="color: red;"가 생긴것도 확인 가능하다.
📌 하지만 이렇게 직접 createElement를 쓰는 방법은 좋지 못한 방법으로 대부분의 프론트엔드 개발자는 사용하지 않는 방식이다.