💻미션: 클릭하면 클릭 수 세는 버튼 만들기 💻
Vanilla HTML
1) HTML 만들기
2) JavaScript에서 가져오기
3) listen for the event
4) update the data & HTML
ReactJS
:애플리케이션이 interactive하도록 만들어주는 라이브러리
ReactDOM(Document Object Model)
: 모든 React 요소들을 HTML body에 둘 수 있도록 해주는 라이브러리
(React 애플리케이션을 브라우저에 렌더링)
(React elements -> HTML)
1) ReactJS, ReactDOM import하기
2) body 안에 empty <div> 만들기: 나중에 여기서 ReactDOM이 React elements를 가져다놓는다
3) root div를 가져와서 -> ReactDOM.render: React elements를 root div 내부에서 보여주라는 뜻
4) ReactDOM은 root div 내부에서 container elements를 render한다.
5) props 안에서 event listener를 등록할 수 있다 🤓
JSX: createElement 대체하기
JSX(JavaScript XML): JavaScript + XML
HTML과 문법이 유사
JavaScript 코드 내에서 UI를 작성할 수 있도록 함
const h3 = React.createElement("h3", {id:"title", onMouseEnter:()=> console.log("mouse enter")}, "Hello, Im a span");
const Title = (<h3 id="title" onMouseEnter={()=> console.log("mouse enter")}>Hello, Im a title.</h3>);
위 둘은 같은 기능을 하지만 아래 JSX 코드가 더 간결하다.
btn도 마찬가지로 JSX로 간결하게 바꿔보자
자바스크립트 컴파일러 바벨(https://babeljs.io/docs/)을 이용해서 다시 자바스크립트로 변환한다
위는 HTML에 익숙한 개발자들이 사용하는 방식이나,
나는 애초에 HTML도 익숙하지 않기 때문에 JSX의 매력을 느끼지 못하겠다.😓
'JavaScript' 카테고리의 다른 글
[JavaScript] ReactJS: STATE(2) (0) | 2024.10.22 |
---|---|
[JavaScript] ReactJS: STATE(1) (0) | 2024.10.21 |
[JavaScript] 크롬 앱 만들기: Weather (1) | 2024.09.11 |
[JavaScript] 크롬 앱 만들기: To Do List (0) | 2024.09.11 |
[JavaScript] 크롬 앱 만들기: Quotes and Backgrounds (0) | 2024.09.10 |