일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- toString
- 게시판
- 출처 : https://joshua1988.github.io/web-development/javascript/promise-for-beginners/
- https://velog.io/@velopert/create-typescript-react-component
- 출처 : https://webdir.tistory.com/506
- http://jeonghwan-kim.github.io/dev/2019/06/25/react-ts.html
- object
Archives
- Today
- Total
Back Ground
React - ( <mark up> ) 표현 본문
에로우 펀션 에서
프로퍼티 JSON 형태로 사용할때는 ({ label : literal }) 를 사용하여아한다.
params => {object:literal}
이렇게 했을때 에러가 발생한다.
1 2 | var func = () => { foo: 1 }; // func() 호출은 undefined를 반환! var func = () => { foo: function() {} }; // SyntaxError: function 문은 이름이 필요함 | cs |
1 | func = () => ({ foo: 1 }); | cs |
foo는 레이블(라벨)로 인식하게 된다.
출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/%EC%95%A0%EB%A1%9C%EC%9A%B0_%ED%8E%91%EC%85%98
하지만 여기서 궁금한 것은
JSX의 마크업이다.
1 | () => (<div> test </div>); | cs |
마크업을 리턴할때 이런식으로 써야 하는데
에로우펀션 방식 중 ()로만 쓰는 방식은 없는데 이게 어떻게 가능한걸까 고민했다.
1 | () => { <div> test </div> }; | cs |
기존에 쓰는 방식을 생각하기에 이렇게 사용해야 맞는 것 같은데
하나의 값만 반환할때 return을 생략해도 되는데 이 방식은 왜 에러가 나는걸까?
1 | () => { return <div> test </div> }; | cs |
이렇게 써야지만 에러가 발생하지 않는다.
여기서 눈치를 챘을 수도 있겠는데 설명하자면
마크업의 데이터는 { : } 프로퍼티 방식과 같다.
즉 이것과 같다.
() => { return {'div':'test'} };
그러면 return을 생략하고 사용하자면
1 | () => ( {"div":"test"} ); | cs |
이런 얘기가 되는 것이기 때문에
(이해를 돕기 위한 예 일뿐 실제로 저 키와 값이 들어가지는 않는다. [ 바벨 ES5로 변환하는것 참고 ] )
1 | () => ( <div>test</div> ); | cs |
이렇게 써야 되는 것이다.
이미지 출처: https://developer.mozilla.org/ko/docs/Glossary/HTML#%EA%B0%9C%EB%85%90%EA%B3%BC_%EB%AC%B8%EB%B2%95
'Javascript > React.js' 카테고리의 다른 글
React - 라이프 사이클 (1) | 2018.10.31 |
---|---|
React - 컴포넌트 반복 (0) | 2018.10.28 |
React - ref : DOM에 이름 달기 (0) | 2018.10.20 |
React - 이벤트 핸들링 (0) | 2018.10.20 |
React - 컴포넌트 [props , state] (0) | 2018.10.19 |
Comments