===== React ===== Facebook에서 공개한 Open Source. 2013년에 소개 공식튜토리얼은 [[https://reactjs.org/tutorial/tutorial.html|여기]]에서 확인하세요. * JSX - React에서 문법으로 사용 ==== React를 위한 기초 지식들 ==== - [[typescript:home|TypeScript]] - NODE Module들 * Component * typestyle * React-router * Redux * redux * react-redux * Mobx * RxJS * [[http://sculove.github.io/blog/|RxJS - 순찬욱Blog]] * Jest * yarn add -D enzyme enzyme-to-json * yarn add -D @types/enzyme @types/enzyme-to-json * Next.js - [[http://webframeworks.kr/tutorials/react/getting-started/|React시작하기]] - [[react:tictactoe|Tic Tac Toe 게임]] - [[https://medium.com/chequer/react-datagrid-component-제작기-with-es6-typescript-4efcbfe1b442|React data grid component제작시(with ES6, TypeScript)]] - [[webpack:home|Webpack]] - [[study:angluar|Angular]] - [[https://www.getpostman.com/|Postman]] - server request확인하기위해서 ==== create-react-app ==== Hello World!를 만들기 위해서는 create-react-app을 이용하는 것이 좋은 방법이다. 처음에는 이것이 무엇을 하는지 이해하는 것은 어렵지만 프로젝트생성시에는 많은 도움이 된다는 것을 알 수 있을 것입니다. 사전준비사항 * Node.js * 최신버전확인 * npm -v * node -v * npm upgrade * sudo npm install -g npm * Project 생성방법 - Node.js최신버전확인 * npm -v * sudo npm install -g npm - create-react-app * npm install -g create-react-app - create PROJECT - create-react-app boeun - create-react-app boeun --scripts-version=react-scripts-ts - 확인 - npm start - http://localhost:3000에서 확인하세요. - npm run build - npm test - npm run eject ==== ES6( ECMAScript6, ES2015 ) ==== {{:react:1*culi_8t0e-xvklqj5ttdyw.png}} ==== React란 무엇인가요? ==== React는 유저 인터페이스 구현을 위한 선언적이고 효율적이며 유연한 JavaScript라이브러리입니다. React는 여러 종류의 컴포넌트들을 가지고 있지만 우리는 React.Component의 서브클래스를 사용하여 시작할 것입니다. class ShoppingList extends React.Component{ render(){ return(

Shopping List for {this.props.name}

); } } //Example usage:
XML과 비슷한 재밌는 태그들을 사용할 것입니다. 작성한 컴포넌트는 React에게 무엇을 랜더링하고 싶은지 알려줍니다. 그러면 React는 데이터가 변경될 때 올바른 컴포넌트들을 업데이트하고 랜더링합니다. 여기에서 ShoppingList는 React컴포넌트 클래스 혹은 React컴포넌트 타입입니다. 하나의 컴포넌트는 props라 불리는 파라미터를 사용하고, render메서드를 통해 표시할 뷰 계층 구조를 반환합니다. render메서드는 랜더링하길 원하는 내용을 반환하면 React는 그 내용을 가져와 스크린에 랜더링합니다. 특히 render는 랜더링할 간단한 내용인 React엘리먼트를 반환합니다. 대부분의 React개발자들은 이 구조를 더 쉽게 작성할 수 있게 해주는 JSX라는 특별한 문법을 사용합니다.
라 쓰면 빌드시 React.createElement('div')로 변환됩니다. 위의 코드는 아래의 코드와 동일합니다. return React.createElement('div',{className:'shopping-list'}, React.createElement('h1', /* ... h1 children ... */), React.createElement('ul', /* ... ul children ... */)); 코드를 정리하면

Shopping List for {props.name}

  • Instagram
  • WhatsApp
  • Oculus
;
React.createElement( "div", { className: "shopping-list" }, React.createElement( "h1", null, "Shopping List for ", props.name ), React.createElement( "ul", null, React.createElement( "li", null, "Instagram" ), React.createElement( "li", null, "WhatsApp" ), React.createElement( "li", null, "Oculus" ) ) ); createElement()에 대해 더 많은 내용이 궁금하다면 [[https://reactjs.org/docs/react-api.html#createelement|API reference]]에 자세한 설명이 있습니다. 튜토리얼에서는 createElement()를 직접적으로 사용하지 않습니다. 대신 JSX를 사용할 것입니다. JSX에서는 중괄호 안에 JavaScript문법을 사용할 수 있습니다. 각 React엘리먼트는 변수에 저장하거나 프로그램에 여기저기에 전달할 수 있는 실제 JavaScript객체입니다. ShoppingList컴포넌트는 내장된 DOM컴포넌트만 랜더링하지만코드를 작성하여 커스텀React컴포넌트를 쉽게 구성할 수 있습니다. 각 컴포넌트는 캡슐화되어 독립적으로 동작할 수 있습니다. 이때문에 간단한 컴포넌트들로 복잡한 UI를 구현할 수 있습니다.