[ CONTENTS ]
1. Reac ์คํ ๋ช ๋ น์ด
2. React ์์ Jquery ์ฌ์ฉํ๊ธฐ
3. React prop ์ฌ์ฉํ๊ธฐ
React ๋?
๋ฆฌ์กํธ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ๋ ์๋ฐ ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ, ์ค์ง View ๋ง ์ ๊ฒฝ ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
React ํน์ง
๋ฆฌ์กํธ์ ์ฃผ์ ํน์ง ์ค ํ๋๋ Virtual DOM ์ ์ฌ์ฉํ๋ค. DOM(Document Object Model) ์ ๊ฐ์ฒด๋ก ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก XML ์ด๋ HTML ๋ก ์์ฑํ๋ค. ์น ๋ธ๋ผ์ฐ์ ๋ DOM ์ ํ์ฉํด์ ๊ฐ์ฒด์ ์๋ฐ์คํฌ๋ฆฝํธ์ CSS ๋ฅผ ์ ์ฉํ๊ณ DOM ์ ํธ๋ฆฌ ํํ๋ผ์ ํน์ ๋ ธ๋๋ฅผ ์ฐพ๊ฑฐ๋ ์์ ํ๊ฑฐ๋ ์ ๊ฑฐํ๊ฑฐ๋ ์ํ๋ ๊ณณ์ ์ฝ์ ํ ์ ์๋ค.
์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์์ ์์ ์ฌ๋ฌ ๊ฐ๋ฅผ ํ๋์ ์์๋ก ๊ฐ์ธ์ฃผ์ด์ผ ํ ๊น?
Virtual DOM ์์ ์ปดํฌ๋ํธ ๋ณํ๋ฅผ ๊ฐ์งํด ๋ผ ๋ ํจ์จ์ ์ผ๋ก ๋น๊ตํ ์ ์๋๋ก ์ปดํฌ๋ํธ ๋ด๋ถ๋ ํ๋์ DOM ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค๋ ๊ท์น์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
function App(){
return(
<div>
<h1>๋ฆฌ์กํธ ์๋
</h1>
<h2>hello world</h2>
</div>
)
}
๊ผญ div ์์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ผ๋ Fragment ๋ผ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
function App(){
return(
<Fragment>
<h1>๋ฆฌ์กํธ ์๋
</h1>
<h2>hello world</h2>
</Fragment>
)
}
๋ ๋๋ง์ด๋?
์ฌ์ฉ์ ํ๋ฉด์ ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ๋ ๋๋ง์ด๋ผ๊ณ ํ๋ค.
1. React ์คํ ๋ช
๋ น์ด (vscode ๋ด ํฐ๋ฏธ๋์์)
1. ํด๋ ์์ฑ
2. cd ํด๋
3. npx create-react-app .
4. npm install react-router-dom
5. npm start
6. React ํด๋ ๊ตฌ์กฐ๊ฐ ์์ฑ ๋๋ค.
2. React ์์ Jquery ์ฌ์ฉํ๊ธฐ
1. cd ํด๋
2. npm install jquery
3. App.js ์์
import './App.css';
import Jquery from './R016_Jquery';
function App() {
return (
<div>
<h1>Start React 200!</h1>
<p>CSS ์ ์ฉํ๊ธฐ</p>
<Jquery />
</div>
);
}
export default App;
4. Jquery ํ์ผ ์์ฑ
import React, {Component} from 'react';
import $ from 'jquery';
class R016_Jquery extends Component {
input_alert = (e) => {
var input_val = $('#inputId').val();
alert(input_val);
}
render(){
return(
<div>
<h2>[THIS IS Jquery]</h2>
<input id="inputId" name="inputName"/>
<button id="ButtonId" onClick={e=>this.input_alert(e)}>Jquery Button </button>
</div>
)
}
}
export default R016_Jquery;
5. ์น ์คํ ํ๋ฉด
3. React props ์ฌ์ฉํ๊ธฐ
props ๋, ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์์ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ค. props ๋ฅผ ์ ๋ฌ๋ฐ์ ์์ ์ปดํฌ๋ํธ์์๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์ ์๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ ์ปดํฌ๋ํธ ๋ด๋ถ์์๋ง ์ฌ์ฉํ๋ ๋ณ์์ ๊ฐ์ ๋ฃ์ด ์ฌ์ฉํด์ผ ํ๋ค.
1. App.js ์์
import './App.css';
import Props from './R017_Props';
function App() {
return (
<div>
<h1>Start React 200!</h1>
<p>CSS ์ ์ฉํ๊ธฐ</p>
<Props props_val="THIS IS PROPS" />
</div>
);
}
export default App;
2. prop ํ์ผ ์์ฑํ๊ธฐ
import React, { Component } from 'react'
class R017_Props extends Component {
render() {
let props_val = this.props.props_val;
props_val += ' from App.js'
return (
<div>
{props_val}
</div>
)
}
}
export default R017_Props;
3. ์น ์คํ ํ๋ฉด
*์ฐธ๊ณ : ๋ณธ ํฌ์คํ ์ ๋์ [์ด๋ณด์๋ฅผ ์ํ ๋ฆฌ์กํธ 200์ ] ๋ก ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ค.
'JavaScript > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] Redux ๋? (0) | 2021.10.21 |
---|---|
[React] React ์ด๋ฒคํธ ์ฌ์ฉํ๊ธฐ (0) | 2021.10.20 |
[React] React ์์ bootstrap ์ฌ์ฉํ๊ธฐ(ReactStrap) (0) | 2021.10.20 |
[React] HTTP ํต์ ์ ์ํ ๋ฐฉ๋ฒ (Fetch, Axios, Promise) (0) | 2021.10.20 |
[React] props ์ฌ์ฉํ๊ธฐ #1 (0) | 2021.10.13 |
๋๊ธ