- golang
- DP
- BFS
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ํธ๋ฆฌ
- Union-Find
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- DFS
- ์นด์นด์ค2021
- ์ฌ๊ท
- LCs
- ์๊ณ ๋ฆฌ์ฆ
- js
- nestjs
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- go
- C++
- ๋นํธ๋งต
- ๋ค์ต์คํธ๋ผ
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- Python
- ์ด๋ถํ์
- ๋นํธ๋ง์คํน
- ์นด์นด์ค ์ฝํ
- ๋ฐฑ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- ์์ฝ๋
- ์ํฐ๋
- ์น๋ฆฐ์ด
- Today
- Total
Hello Ocean! ๐ผ
[nodejs-react]Server-Client ํต์ ์ ๋ฌดํ ํธ์ถ ํด๊ฒฐ ๋ณธ๋ฌธ
๊ตฌํํ๊ณ ์ถ์ ๊ฒ :
client๊ฐ ํ์ด์ง์ ์ ์ํ์ ๋, server๋ก๋ถํฐ ๋ฐ์ดํฐ ๋ฐ๊ธฐ (initial data)
์ฝ๋:
server.js ์ผ๋ถ
app.use('/api', (req, res)=>
mdbConn.getToDoList()
.then((rows) => {
console.log("in server.js",rows);
res.json({initialTodos:rows});
})
.catch((errMsg) => {
console.log(errMsg);
})
);
App.js ์ผ๋ถ (client)
function App() {
const [state, setState] = useState({
//username: null
initalList: null
});
useEffect(() => {
fetch('http://localhost:3002/api')
.then(res=>res.json())
.then(data=>setState({initalList:data.initialTodos}));
});
console.log(state.initalList);
const _todos = state.initalList;
return (
<div>
{`data from server ${_todos}`}
</div>
.....
๋ฌธ์ 1 :
client๊ฐ server์ ๊ณ์ ์ฌ์ง ์๊ณ ์ด์ฉ๋ฉด ๋ฌดํ์ผ๋ก.. data๋ฅผ ์์ฒญํด์ ๊ณ์ ๋ฐ์์ด..
๋ฌธ์ ์ ์์ธ :
useEffect()๊ฐ ๊ณ์ ๋ฐ๋ณต๋๊ณ ์๋ ๊ฒ์ด์๋ค.
ํด๊ฒฐ :
useEffect๋ ๋ ๋ฒ์งธ ์ธ์๋ก ๋ฃ์ด์ค ๊ฐ๋ค์ด ๋ณ๊ฒฝ๋์์ ๋ effect hook์ด ํธ์ถ๋๋ค.
๋ ๋ฒ์งธ ์ธ์๋ฅผ ์๋ตํ์ ๋, ๋ณ๊ฒฝ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํด์ ๋ฌดํ์ผ๋ก ํธ์ถํ๋ ๊ฒ ๊ฐ๋ค.
๋ฐ๋ผ์ ๋ ๋ฒ์งธ ์ธ์๋ก ๋น ๋ฐฐ์ด[]์ ๋ฃ์ด์ ์ปดํฌ๋ํธ๊ฐ ๋ง์ดํธ ๋์์ ๋, ์ต์ด 1ํ๋ง effect hook์ด ํธ์ถ๋๋๋ก ํ๋ค.
์ฐธ๊ณ ์๋ฃ:
๋ฌธ์ 2:
ํ์ด์ง ๋ ๋๋ง ์ ์, ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์ผ ํ๋๋ฐ,
useEffect()๋ก๋ componentWillMount()๋ฅผ ๊ตฌํํ ์ ์์๋ค..
ํด๊ฒฐ :
showing ์ด๋ผ๋ state๋ฅผ ์ด์ฉํด์, useEffect()ํ์ ์๋ํ ํ์ด์ง๊ฐ ๋ณด์ด๋๋ก ํ๋ค.
ํ์ด์ง๊ฐ ์ฒ์ ๋ ๋๋ง ๋ ๋๋ ๋ก๋ฉ์ค ํ์ด์ง ์ด์ฉ
......
function App() {
const [showing, setShowing] = useState(false);
const [state, setState] = useState({
//username: null
initalList: [{
id: 1,
text: '๊ฐ์ง๊ฐ',
done: true
}]
});
useEffect(() => {
console.log('start useEffect');
fetch('http://localhost:3002/api').then(res=>res.json()).then(data=>{
setState({initalList:data.initialTodos});
setShowing(true)
});
},[]); //๋น ๋ฐฐ์ด์ ๋ฃ์ด ๋ฐ๋ณต ์คํ๋์ง ์๋๋ก..
console.log("App state:",state.initalList);
if (showing){
return (
<TodoProvider initalTodos={state.initalList}>
<GlobalStyle/>
<WrapAll>
<TodoChangeDate info="left">
</TodoChangeDate>
<TodoTemplate>
<TodoHead></TodoHead>
<TodoList></TodoList>
<TodoCreate></TodoCreate>
</TodoTemplate>
<TodoChangeDate info="right">
</TodoChangeDate>
</WrapAll>
</TodoProvider>
);
}
else {
//๋ก๋์ค ํ์ด์ง ๋์ค์ ๊พธ๋ฏธ๊ธฐ
return(
<div>
ํ์ด์ง๋ฅผ ๋ก๋ ์ค์
๋๋ค
</div>
);
}
......
'Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Postman] request์ cookie undefined error ํด๊ฒฐ (0) | 2021.08.27 |
---|---|
[VanillaJS] ๊ฐ์ฒด ์ ๋ ฌ ์ด๋ป๊ฒ ํ์ง? (feat. ๋ฌธ์์ด) (0) | 2021.08.23 |
[Node.js] ์๋ฒ ์์ฑ (0) | 2021.01.26 |
[JavaScript] ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ (0) | 2020.12.28 |
[CSS] ๊ฐ์ (0) | 2020.12.17 |