[JavaScript] 저희가 가상 DOM을 제공하는'React'에 대해 조사를 해봤어요.
14551 단어 ReactJavaScriptyeoman
그나저나 리액트를 처음 알게 된 것은천하제일클라이언트 JS MV* 프레임 무술회이었다.
이른바 React
페이스북 팀이 개발한 사용자 인터페이스 구축을 위한 자바스크립트 라이브러리입니다.공식페이지↑http://facebook.github.io/react/
그 특징(공식 페이지와 같다)
Virtual DOM(가상 DOM)
1 방향의 Reactive 바인딩
React 정보
공식 페이지(위 페이지와 동일)
튜토리얼과 API 문서 등 알찬 느낌
샘플 소스(Starter Kit)도 다운로드 가능
React의 호스트 소스
간단한 시도라면 CDN부터 읽으면 될 것 같다.
<script src="http://fb.me/react-0.11.1.js"></script>
<script src="http://fb.me/JSXTransformer-0.11.1.js"></script>
보워도 설치할 수 있을 것 같아요.
$ bower install --save react
확장?페이스북 팀에서 만들었어요.
Rails용gem
React 관련 슬라이드(일본어)
MVC는 이미 유행이 지났다!?React + Flux
Yeoman에서 프로젝트 템플릿을 찾았습니다.
나는 노동력과 재료를 줄여서 빨리 시험해 보고 싶어서 누군가가 만든 틀을 찾아서 두 개를 시험해 보았다.그나저나 전제 조건은 손 옆 환경이 이거다→Mac로 Yeoman 환경을 구축하려면
① generator-react-webpack
생성기의 소스는 이거야ㅠhttps://github.com/newtriks/generator-react-webpack
설치 생성기
$ npm install -g generator-react-webpack
부트 생성기
$ yo react-webpack
파일 확장은 다음과 같습니다.
동작 확인
$ grunt serve
그나저나 발송을 위한 구축이라면
$ grunt build
② generator-react-gulp-browserify
생성기의 소스는 이거야ㅠhttps://github.com/randylien/generator-react-gulp-browserify
주변 환경은 Gulp과 Browserify를 사용한 것 같습니다.개인적으로 이게 낫죠.
설치 생성기
$ npm install -g generator-react-gulp-browserify
Gulp과 SASS가 필요한 것 같아서 따로 설치합니다.
$ npm install -g gulp
$ gem install sass
CoffeeScript가 설치되어 있지 않은 경우 를 넣어야 할 수도 있습니다.부트 생성기
$ yo react-gulp-browserify
초기 상태에서는 Bower가 관리하는 라이브러리 클래스가 없습니까?이렇게
$ bower install
최종적으로 파일은 다음과 같이 전개된다
동작 확인
$ gulp watch
브라우저로 접근해 보십시오 http://localhost:9000
.역시 이 시대 사람들은 이해하기 쉬워요.
소스 봐봐.
React.createClass()
에 맡긴 것 같다.그 대상의 render:
키의 값은 View에 표시된 내용인 것 같습니다./** @jsx React.DOM */
var React = window.React = require('react'),
Timer = require("./ui/Timer"),
mountNode = document.getElementById("app");
var TodoList = React.createClass({
render: function() {
var createItem = function(itemText) {
return <li>{itemText}</li>;
};
return <ul>{this.props.items.map(createItem)}</ul>;
}
});
var TodoApp = React.createClass({
getInitialState: function() {
return {items: [], text: ''};
},
onChange: function(e) {
this.setState({text: e.target.value});
},
handleSubmit: function(e) {
e.preventDefault();
var nextItems = this.state.items.concat([this.state.text]);
var nextText = '';
this.setState({items: nextItems, text: nextText});
},
render: function() {
return (
<div>
<h3>TODO</h3>
<TodoList items={this.state.items} />
<form onSubmit={this.handleSubmit}>
<input onChange={this.onChange} value={this.state.text} />
<button>{'Add #' + (this.state.items.length + 1)}</button>
</form>
<Timer />
</div>
);
}
});
React.renderComponent(<TodoApp />, mountNode);
끝말
아직 평가할 정도는 아니지만 인상으로 이해하기 쉬운 구조라고 생각한다.다시 해보고 싶어요.
Reference
이 문제에 관하여([JavaScript] 저희가 가상 DOM을 제공하는'React'에 대해 조사를 해봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hkusu/items/ee5bc75c3c32185c7b76텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)