MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

πŸ’ŽWEB/Web κ°œλ…μ •λ¦¬

Λšβ‚Šβœ©β€§β‚Š μƒν™œμ½”λ”© WEB2 -JavaScript/React (23.04.14) Λšβ‚Šβœ©β€§β‚Š

HYEJU01 2023. 4. 14. 23:40

μˆ˜μ—…μ†Œκ°œβœ…

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 !

[예제] 폼과 κΈ€ 생성

 

 

 

 

μˆ˜μ • κΈ°λŠ₯ κ΅¬ν˜„βœ…

 

 


μ‚­μ œ κΈ°λŠ₯ κ΅¬ν˜„ & μˆ˜μ—…을 λ§ˆμΉ˜λ©°βœ