컴포넌트는 반드시 하나의 엘레먼트만 리턴
라이프사이클?
fragment 사용이유:
state-비동기.순서 비유지.
constructor 초기화를 먼저 해줘야 함. 초기화 부분 super(prop)
constructor 쓸 떄 super(prop)은 꼭 한다고 봐도 무방.
setState부분
-기존의 값을 참조해서 값을 변경하고 싶을때
비동기적이기 때문에 반드시 콜백함수 파라메터부분 신경쒀줘야 함
// 1.
// this.setState({
// buttonClickCount: ++this.state.buttonClickCount
// });
// 2.
// this.setState((prevState/*, props*/) => {
// return {
// buttonClickCount: ++prevState.buttonClickCount
// };
// });
-객체 안의 객체의 값을 변경하고 싶을 때
이전의 값을 저장한다음에 변하고 싶은 부분만 변경해야지
안그러면 bodyContents안에 있던 b는 없어지게 됨
// state안의 객체안의 객체의 값을 변경할 경우
onChangeState() {
this.setState(prevState => {
const state = prevState.bodyContests;
state.a = ++state.a;
return state;
});
}
//안좋은 예
//이렇게 하면 (위에있던) bodyContents안에 있던 b는 없어지게 됨
this.setState({
bodyContests: {
a:'1234'
}
});
es6문법
...문법
props에 있는 값을 사용하고 싶을때 사용되는 메소드
->
static getDerivedStateFromProps(nextProps, prevState) {
// 특정 props 가 바뀔 때 state값을 초기화시킬때 사용
console.log('Child static getDerivedStateFromProps');
if (nextProps.number !== prevState.number) {
return { number: nextProps.number };
} else {
return null;
}
}
가변적이지 않은 것 = props
===============================
라이프 사이클
처음으로 렌더링 될때 시점이 mount 시점
굵은 표시들-제일 많이 쓰는
다른 것들은-최적화할 때 쓰는
componentDidMount -> 최초에 딱 한 번 실행.
맨처음 돔을 읽고 나중에 업데이트하고 변경된것들만 비교해서 리렌더링되는 구존데
맨처음 돔을 읽기위해 하는 작업.
virtual dom이 어떻게 돌아가는지
https://www.youtube.com/watch?v=BYbgopx44vo&t=38s
=====================================
Example 예제. 함수형으로 만듦
'JAVASCRIPT > React' 카테고리의 다른 글
[생활코딩 React 강의2] 컴포넌트 만들기, Props, 컴포넌트 파일로 쪼개기 (0) | 2019.04.26 |
---|---|
[생활코딩 React 강의 1] 컴포넌트란? && React 기본 앱 뜯어보기 && 배포해보기 (0) | 2019.04.24 |
DOM조작 & react_router (0) | 2019.01.05 |
1_props & state (0) | 2018.12.17 |
1_es6, es7 학습, JSX 문법 (0) | 2018.12.17 |
Comments