Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- createtextnode
- createElement
- input
- VAR
- const
- boolean
- FOR
- Let
- Openlayers
- 학습법 #집중력
- Append
- appendChild
- htmlFor
Archives
- Today
- Total
Atomic Habits
React. ch1. 05. Element 찍어내기 본문
<!DOCTYPE html>
<html lang="en">
<body>
<!-- 리액트를 사용하기 위한 CDN -->
<script
crossorigin
src="https://unpkg.com/react@17/umd/react.development.js"
></script>
<script
crossorigin
src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"
></script>
<script
crossorigin
src="https://unpkg.com/@babel/standalone/babel.min.js"
></script>
<!-- 1. JSX, Babel 이해하기 -->
<div id="root1"></div>
<div id="root2"></div>
<div id="root3"></div>
<div id="root4"></div>
<div id="root5"></div>
<!-- babel이 읽고 컴파일 후 js 식으로 표현할 영역 type="text/babel" -->
<script type="text/babel">
// 리액트에서는 하나의 태그(div, etc)를 만들어야만 그 안에 children을 주입할 수 있다.
const rootElement1 = document.getElementById("root1");
// 1. 빈 function 생성 후 찍어내기
const paint1 = () => (
<>
<h1>a1</h1>
<h2>b1</h2>
</>
);
// 찍어내기
const element1 = (
<>
{paint1()} {paint1()} {paint1()}
</>
);
// JSX에 js를 주입할 경우 { } 안에 적는다
ReactDOM.render(element1, rootElement1);
// 2. 인자가 들어간 함수 생성 후 찍어내기
const rootElement2 = document.getElementById("root2");
const paint2 = (title, description) => (
<>
<h1>{title}</h1>
<h2>{description}</h2>
</>
);
const element2 = (
<>
{paint2("A2", "a2")}
{paint2("B2", "b2")}
{paint2("C2", "c2")}
</>
);
// A2 ~ c2 까지 div 아래에 자식 요소로 생성
ReactDOM.render(element2, rootElement2);
// 3. Custom Element (1)
const rootElement3 = document.getElementById("root3");
const paint3 = (title, description) => (
<>
<h1>{title}</h1>
<h3>{description}</h3>
</>
);
const CustomElementPaint3 = ({ title, description }) => (
<>
<h1>{title}</h1>
<h3>{description}</h3>
</>
);
const element3 = (
<>
<CustomElementPaint3 title="A3" description="a3" />
<CustomElementPaint3 title="B3" description="b3" />
{paint2("C3", "c3")}
{paint2("D3", "d3")}
</>
);
// A3 ~ d3 까지 div 아래에 자식 요소로 생성
ReactDOM.render(element3, rootElement3);
// 4. Custom Element (2)
const rootElement4 = document.getElementById("root4");
{
// CustomElement 는 UpperScore ! 첫 글자 대문자 규칙 !!
// -> 함수의 형태인데 JSX 표현식을 반환하고, 인자에 여러 요소를 주입 가능!
// CustomElementPaint4 의 우측 항목이 props인지 확인은?
// children을 인자로 넣고 받아지는지 확인하면 된다.
}
const CustomElementPaint4 = ({ title, description, children }) => (
<>
<h1>{title}</h1>
<h3>{description}</h3>
{children}
</>
);
// /* 위의 () => (); 는 () => {return }; 형태와 동일한 기능 */
// const CustomElementPaint4 = ({ title, description, children }) => {
// return (
// <>
// <h1>{title}</h1>
// <h3>{description}</h3>
// {children}
// </>
// )
// };
const Good = () => <h3>Good</h3>;
//const Good = <h3>Good</h3>; -> ReactDOM.render() 로 주입
const element4 = (
<>
<CustomElementPaint4 title="A4" description="a4">
<h1>Children1</h1> {/* */}
<span>Children2</span> {/* */}
<Good />
<Good />
</CustomElementPaint4>
<CustomElementPaint4 title="B4" description="b4" />
<CustomElementPaint4 title="C4" description="c4" />
</>
);
// A4 ~ c4 까지 div 아래에 동일한 자식 요소로 생성
ReactDOM.render(element4, rootElement4);
</script>
</body>
</html>
'IT > React' 카테고리의 다른 글
React. ch1. 07. Review (0) | 2021.10.10 |
---|---|
React. ch1. 06. JS와 JSX 섞어쓰기 (0) | 2021.10.10 |
React. ch1. 04. 멀티 Element 생성하기 (0) | 2021.10.09 |
React. ch1. 02. DOM에 대한 이해 (0) | 2021.10.09 |
React. ch1. 01. React 란? (0) | 2021.10.09 |
Comments