μμ μκ°β
React μ¬μ©μ μ μ νκ·Έλ₯Ό λ§λλ κΈ°μ
λΆνμΌλ‘ μ¬μ© (곡μ λκ³ μ¬μ©ν μ μμ)
μ€μ΅νκ²½ κ΅¬μΆ β
React ννμ΄μ§
μ¨λΌμΈ νλ μ΄ κ·ΈλΌμ΄λ -> κ°λ°νκ²½ μΈν μμ΄ λ°λ‘ κ°λ₯
Create react app μ μ¬μ© !!
ν°λ―Έλμ npx create-react-app my-app
node js λ€μ΄λ‘λ ν΄μΌν¨
vscode λ‘ μ€μ΅
react1.app ν΄λ μμ±
μ ν°λ―Έλ μ΄κ³ npx (node.js λ€μ΄λ°μΌλ©΄ μ¬μ©κ°λ₯)
create-react-app μΉλ©΄ λ°λ‘ μ¬μ© κ°λ₯
. (νμ¬ λλ ν 리) + μν° ν΄λ¦
npm start > μν μ ν리μΌμ΄μ μ΄ μΌμ§λ€.
μμ€μ½λ μμ λ°©λ²β
index.js // μ ꡬνμΌ
<app /> νκ·Έ // UI μ 체 , μ€μ λ΄μ©μ μλ¨ import App from './App' ; μμ μ¨λ€.
'root' // index.html μ root λΌλ id κ°μ§ νκ·Έκ° μλ€!
<λ°°ν¬>
ν°λ―Έλ > npm run build
serve -s build (idex.html νμΌμ μλΉμ€ν΄μ€λ€.)
npx serve -s build
μ»΄ν¬λνΈ λ§λ€κΈ° β
μ»΄ν¬λνΈ = νκ·Έκ° λ³΅μ‘ν κ²½μ°, νκ·Έλ₯Ό (μ¬μ©μμ μνκ·Έ) μ΄λ¦μ λ§μΆ°μ λ§λ€κ³ μΆμ.
1. ν¨μλ₯Ό λ§λ λ€. (λλ¬Έμ! μ£Όμ)
function Header(){
return <header>
</header>
}
<Header> </Header>
props β
μμ± , μ λ ₯κ°
μ»΄ν¬λνΈλ μμ±μ κ°μ§λ©΄ μ΄λ¨κΉ = props
1. 맀κ°λ³μλ‘ props λ₯Ό μ€λ€.
2. μ»΄ν¬λνΈμ μλ κ°μ μ»΄ν¬λνΈ ν¨μ μ체μ κ° λ£κΈ° {props.title} λ£μΌλ©΄ κ°μ μ¬μ© κ°λ₯
1. const topics λΌλ λ³μλ₯Ό μμ± (κ°μ²΄ λ°°μ΄μ λ΄κΈ°)
2. {topics} λ°μμ€κΈ°
3. 맀κ°λ³μμ props μ μΈ
4. const lis = {} λ°°μ΄λ§λ€κΈ°
5. λμ μΌλ‘ topics κ°μ λ΄μμ {lis}λ°°μ΄μ λ΄μμ£ΌκΈ°
6. for λ¬ΈμΌλ‘ λμ νκ·Έ λ§λ€μ΄μ£ΌκΈ°
7. ν€κ° λ£μ΄μ£ΌκΈ° (νκ·Έ μΆμ , μ νν λμ λμ?)
function Header(props){
console.log('props',props); // title : "REACT"
// props.title
return <header>
<h1><a href="/">{props.title}</a></h1>
</header>
<Header title="REACT"> </Header>
function Nav(props){
const lis ={
<li> <a href="/read/1">html</a></li>,
<li> <a href="/read/2">css</a></li>,
<li> <a href="/read/3">js</a></li>
}
for (let i=0; i<props.topics.length; i++){
let t = props.topics[i];
lis.push(<li key=(t.id)><a href="{'/read/'+t.id}">{t.title}</a></li>)
}
return <nav>
<ol>
{lis}
</ol>
</nav>
}
function Article(props){
return <article>
<h2> {props.title}</h2>
{props.body}
</article>
}
function App(){
const topics = {
{id:1, title:'html', body:'html is...'},
{id:2, title:'Css', body:'Css is...'},
{id:3, title:'Js', body:'Js is...'},
}//
return{
<div>
<Header title="WEB"></Header>
<Nav topics={topics}></Nav>
<Article title="welcome" body="hello, Web"></Article>
</div>
}
}
μ΄λ²€νΈβ
μ»΄ν¬λνΈμ μ΄λ²€νΈ λ£κΈ°
<Header onChangeMode={function(){
alert('Header');
}} </Header>
stateβ
Prop -> state(μ»΄ν¬λνΈ λ΄λΆμλ₯Ό μν) -> returun
[μμ ] λ³μ κ°μ λ°λ₯Έ λ³Έλ¬Έ λ³ν
μμ± κΈ°λ₯ ꡬνβ
create read update delete
create !
[μμ ] νΌκ³Ό κΈ μμ±
μμ κΈ°λ₯ ꡬνβ
μμ κΈ°λ₯ ꡬν & μμ
μ λ§μΉλ©°β