[React ์คํฐ๋ Day1๐] JavaScript ๊ธฐ์ด & React์ ์ฅ๋จ์ & JSX์ด๋?
* ์ด ๊ธ์ ์ํ๋์ `์ฒ์ ๋ง๋ ๋ฆฌ์ํธ(React) ๊ฐ์ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ฒ์๋ฌผ์ ๋๋ค.
์ฒ์ ๋ง๋ ๋ฆฌ์ํธ(React) - ์ํ
๋ฆฌ์ํธ ์ฐ๋จน
๋ฐฉํ ๋์ PS๋ฅผ ์ด์ฌํ ๋ฐฐ์๋ณผ ์๊ฐ์ด์์ผ๋,,, PS๊ฐ ํ๊ธฐ ์ซ์ด์ก๋คโฆ
์์ ์ Django ๋ฐฐ์ธ ๋, React ํ์๋ ๋ถ์ด๋ ํ์ ํด์ ํ๋ก์ ํธ๋ฅผ ํด๋ณธ ์ ์ด ์์์ต๋๋ค.
์ฌ์ค ์ ๊ฐ ์ ๋๋ก ๋ฐฐ์ฐ๊ณ ์ถ์ ๋ถ๋ถ์ ํ๋ก ํธ์๋๋ ์ ๋ ์๋๋๋ค.
๋ค๋ง ์ฌ์ฌํ๊ธฐ๋ ํ๊ณ , ๋ญ๊ฐ ์ฌ๋ฏธ์์ด ๋ณด์ฌ์ ๊ทธ๋ฅ ์ฐ๋จนํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค~
Ch 00. JavaScript
์คํฌ๋ฆฝํธ ์ธ์ด - ๋ฐํ์์ ์ฝ๋๊ฐ ํด์๋๊ณ ์คํ๋๋ค.
์๋ฃํ(Data Type)
Dynamic Typing(๋์ ํ์ดํ) ๋ณ์๋ฅผ ์ ์ธํ ๋๊ฐ ์๋๋ผ ๋ณ์์ ๋ฐ์ดํฐ๊ฐ ๋์ ๋๋ ์์ ์ ์๋ฃํ์ด ๊ฒฐ์ ๋๋ค.
์๋ฃํ ์ข ๋ฅ
var name1;
let name2;
// number ํ์
let n = 1234;
//string ํ์
let s = "Hello!";
// NULL ํ์
let a = null;
// ์์ง ์ง์ ๋์ง ์์
let u1 = undefined;
// ๋ฐฐ์ด ํ์
// ๋ฐฐ์ด์ ๋ค์ํ ์๋ฃํ ํฌํจ ๊ฐ๋ฅ, ์ธ๋ฑ์ค ๊ฐ์ง
let arr = [1,2,3,4, "hi"];
// object ํ์
// key๊ฐ์ ๋ฌด์กฐ๊ฑด ๋ฌธ์์ด, ๋๋จธ์ง๋ ์๊ด ์์.
let obj = { a: "apple", b:"banana"};
// ๋ฑ๋ฑ์ ์๋ฃํ ์กด์ฌ
JavaScript Operator(์ฐ์ฐ์)
Assignment Operator(๋์ ์ฐ์ฐ์): = Arithmetic Operators(์ฌ์น ์ฐ์ฐ): + - * / % ** Equal Operators: == !=
Strict equality operators: === !==
์ฒ์ ๋ณด๋ ์ฐ์ฐ์์
๋๋ค. Strict equality operator๋ a===b
์ผ ๋, a์ b์ ๊ฐ๊ณผ ์๋ฃํ์ด ๋ชจ๋ ๊ฐ์์ผ ์ฐธ์ด ๋ฉ๋๋ค.
Ch 01, 02. React
์ฅ์
-
๋น ๋ฅธ ๋ ๋๋ง ์๋(Vertual DOM) Component-Based :๋ ๊ณ ๋ธ๋ก ์กฐํฉํ๋ฏ ์กฐ๋ฆฝํ๋ฉฐ ๊ฐ๋ฐ
-
Reusability(์ฌ์ฌ์ฉ์ฑ) - ํธํ์ฑ ๋ฌธ์ ๋ฅผ ๋ฎ์ถ๊ณ ์ฌ๋ฌ ๊ณณ์์ ์ปดํฌ๋ํธ ์ฌ์ฉ, ๋ชจ๋ ๊ฐ ์์กด๋๊ฐ ๋ฎ์ โ> ์ ์ง ๋ณด์ ์ฉ์ด, ๊ฐ๋ฐ ์๋ ๋น ๋ฆ
๋จ์
- ๋ฐฉ๋ํ ํ์ต๋. ๊ธฐ์กด ๋ฐฉ์๊ณผ ๋ค๋ฅธ UI ๋ฐฉ์
- ๋์ ์ํ๊ด๋ฆฌ ๋ณต์ก๋(state ๊ด๋ฆฌ)
Ch03. JSX(A syntax extension to JavaScript)
JSX๋?
JS์ ํ์ฅํ. JS + XML/HTML
const element = <h1>Hello World!</h1>;
-> js์ฝ๋์ html ์ฝ๋๊ฐ ๋ณตํฉ์ ์ผ๋ก ์ฌ์ฉ๋ ๋ชจ์ต์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
JSX์ ์ญํ
JSX์ ๋ด๋ถ์ ์ผ๋ก HTML/XML
์ JS ์ฝ๋๋ก ๋ณํํ๋ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋ฉ๋๋ค.
์ด ๋ณํ์ ์์ผ์ฃผ๋ ๊ฒ์ด React์ createElement ํจ์์ ๋๋ค.
JSX๋ฅผ ์ฌ์ฉํ์ง ์๊ณ JS ๋ง์ผ๋ก๋ ๋์ผํ ๋ด์ฉ์ ์ฝ๋ฉํ ์ ์์ง๋ง HTML/XML
๋ฌธ๋ฒ์ ์ฌ์ฉํจ์ผ๋ก์ ๊ฐ๋
์ฑ๊ณผ ๊ฐ๋ฐ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๊ธฐํ ์ฅ์ ์ผ๋ก๋
- Injection Attacks ๋ฐฉ์ด
function formatName(user) {
return user.firstName + ' ' + user.lastName;
}
~
const element = (
// XML/HTML ์ฝ๋ ์ฌ์ด์ ์ค๊ดํธ๋ฅผ ์ฌ์ฉํ์ฌ JS ๋ณ์๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
<h1>Hello, {formatUser(user)}</h1>
)
~
** ์ค๊ดํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌด์กฐ๊ฑด JS ์ฝ๋๋ก ๋ค์ด๊ฐ๋ค. **