일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 통영여행
- 통영
- 퇴사후공무원
- 방이편백육분삼십성신여대
- 한성대맛집
- react
- ELK
- 국가직
- 서울숲누룽지통닭구이
- 방이편백육분삼십
- 성신여대편백집
- 성신여대맛집
- 뚝섬역맛집
- 한남동맛집
- tomcat7
- 통영예쁜카페
- 자바스크립트에러처리
- ubuntu자바설치
- npm
- 영화추천
- 파이썬
- gradle
- springboot
- 돈암동맛집
- 통영에어비앤비
- JavaScript
- 공무원
- 꼴뚜기회
- 성북구맛집
- 스페인여행
- Today
- Total
코린이의 기록
[React] React.js 시작하기 본문
Codepen
웹에서 간편하게 HTML, CSS, Javascript 코드등을 구현하고 결과를 출력해주는 사이트.
Codepen 설정
1.JavaScript -> JavaScript PreProcessor : Barbel 선택
2.Quick-add 에서 React, React-DOM을 추가해주거나,
아래를 직접 넣어준다.
https://unpkg.com/react@15/dist/react.js
https://unpkg.com/react-dom@15/dist/react-dom.js
3. Save
js(barbel) 에서 jsx 구현
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class Codelab extends React.Component { // Codelab이라는 텍스트를 랜더링 하는 소스
render(){ return( <div>Codelab</div> ); } } class App extends React.Component{ // 위에서 만든 컴포넌트를 다른 컴포넌트에서 사용할 수 있다. render(){ return( <Codelab/> ); } } ReactDOM.render(<App/>,document.getElementById("root")); // 위에서 만든 컴포넌트를 랜더링 한다. // 첫번째 인자는 랜더링할 jsx형태 코드임. App 컴포넌트를 랜더링 할것이므로 <App/>을 적어줌. // 두번째 인자는 이 컴포넌트를 랜더링할 element | cs |
react jsx는 xml 같은 문법을 native JavaScript로 변환해준다. 괄호를 넣지 않아도 에러는 발생하지 않지만, 가독성을 위해 사용한다. 이 jsx는 babel을 통해서 작동하게된다.
render() : 모든 react 컴포넌트는 render 메소드가 있는데, 이 메소드는 컴포넌트가 어떻게 생길지 정의해줌.
ReactDOM : 실제 페이지에 jsx 형태 코드를 랜더링할 때 사용됨.
HTML 구현
1 | <div id="root"></div> | cs |
결과
아래에 랜더링 결과인 Codelab이라는 문자를 찍는다.
JSX
1. Nested Element
컴포넌트에서 여러 Element를 랜더링할 때에는 반드시 Container element안에 포함시켜주어야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /* Error */ render(){ return ( <h1>Hi</h1> <h2>I am Error</h2> ) } /* Normal */ render(){ return( <div> <h1>Hi</h1> <h2>I am Error</h2> </div> ) } | cs |
2. Javascript Expression
JSX 안에서 JavaScript를 표현할때에는 {}로 wrapping한다.
참고) let ??
javascript에서 변수 선언시 var를 사용했다면 ES6 에서는 let을 사용한다.
위에서 구현한 소스에서 let을 사용하여 문자를 찍어보자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Codelab extends React.Component { render(){ let text = "Hi I am codelab"; return( <div>{text}</div> ); } } class App extends React.Component{ render(){ return( <Codelab/> ); } } ReactDOM.render(<App/>,document.getElementById("root")); | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class Codelab extends React.Component { render(){ let text = "Hi I am codelab"; let style = { //background-color backgroundColor:'aqua' }; return( <div style={style}>{text}</div> ); } } class App extends React.Component{ render(){ return( <Codelab/> ); } } ReactDOM.render(<App/>,document.getElementById("root")); | cs |
4. Comments
주석 작성시 {/* ... */} 형태로 작성해야 한다.
그리고 Container element 안에 주석이 작성 되어야 한다.
아래 예시를 보면 <div> 안에 주석이 있는데, 이 주석이 <div> 위나, </div> 아래로 들어갈 경우 에러를 발생시킨다.
1 2 3 4 5 6 7 8 | render(){ return( <div> {/* This is your Comment */} </div> ); } | cs |
이 포스팅은 [React.js] 강좌 (React&Express 를 이용한 웹 어플리케이션 개발하기) 2-2편 : jsx를 기반으로 작성하였습니다.
'Framework > React' 카테고리의 다른 글
[React] 리엑트와 컴포넌트 props & state (0) | 2018.06.17 |
---|---|
[React] 리액트 기본 사용 법과 JSX (0) | 2018.06.17 |
[React] Node.js 로 간단한 웹 애플리케이션 만들기기 (0) | 2018.06.10 |
[React] npm을 사용한 프로젝트 생성 (0) | 2018.06.10 |
[React] npm으로 라이브러리(모듈) 설치/삭제하기 (1) | 2018.06.10 |