나는 반응이 조금 새롭다. 나는 우리가이 일을 시작하는 가져와야 참조 React
및 ReactDOM
캔 사람이 차이를 설명. React documentation을 읽고 있지만 말하지 않습니다.
나는 반응이 조금 새롭다. 나는 우리가이 일을 시작하는 가져와야 참조 React
및 ReactDOM
캔 사람이 차이를 설명. React documentation을 읽고 있지만 말하지 않습니다.
답변:
React와 ReactDOM은 최근에 두 개의 다른 라이브러리로만 분리되었습니다. v0.14 이전에는 모든 ReactDOM 기능이 React의 일부였습니다. 약간 날짜가 지난 문서에는 React / ReactDOM 구별이 언급되어 있지 않으므로 혼란의 원인이 될 수 있습니다.
이름에서 알 수 있듯이 ReactDOM은 React와 DOM 사이의 접착제입니다. 종종 다음과 같은 하나의 마운트에만 사용합니다 ReactDOM.render()
. ReactDOM의 또 다른 유용한 기능은 ReactDOM.findDOMNode()
DOM 요소에 직접 액세스하는 데 사용할 수 있습니다. (React 앱에서는 드물게 사용해야하지만 필요할 수도 있습니다.) 앱이 "동형"인 경우 ReactDOM.renderToString()
백엔드 코드 에서도 사용 됩니다.
다른 모든 것에는 React가 있습니다. React를 사용하여 라이프 사이클 후크 등의 요소 (예 : React 애플리케이션의 내장)를 정의하고 작성합니다.
React와 ReactDOM이 두 개의 라이브러리로 분리 된 이유는 React Native가 도착했기 때문입니다. React에는 웹 및 모바일 앱에서 사용되는 기능이 포함되어 있습니다. ReactDOM 기능은 웹 앱에서만 사용됩니다. [ 업데이트 : 추가 연구 결과, React Native에 대한 나의 무지가 드러나고 있음이 분명합니다. 웹과 모바일 모두에 공통적 인 React 패키지를 갖는 것은 현실보다 더 열망하는 것 같습니다. React Native는 현재 완전히 다른 패키지입니다.]
v0.14 릴리스를 알리는 블로그 게시물을 참조하십시오 : https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html
는에서 v0.14 베타 버전 발표 반응 .
우리는 같은 패키지에 보면
react-native
,react-art
,react-canvas
, 그리고react-three
, 아름다움의 본질은 브라우저 또는 DOM과 아무 상관이 반작용 것이 분명되고있다.이를보다 명확하게하고 React가 렌더링 할 수있는 더 많은 환경을보다 쉽게 구축 할 수 있도록 기본 반응 패키지를 반응 및 반응 돔의 두 가지로 나눕니다.
기본적으로 React의 아이디어는 브라우저와 관련이 없으며 구성 요소 트리를 렌더링하기위한 많은 대상 중 하나 일뿐입니다. 개발자는 ReactDOM 패키지를 통해 중요하지 않은 코드를 React 패키지에서 제거하고보다 적절한 저장소로 옮길 수있었습니다.
react
패키지 포함React.createElement
,React.createClass
와React.Component
,React.PropTypes
,React.Children
, 및 요소와 구성 요소 클래스와 관련된 다른 도우미. 우리는 이것을 구성 요소를 작성하는 데 필요한 동형 또는 보편적 인 도우미라고 생각합니다.
react-dom
패키지 포함ReactDOM.render
,ReactDOM.unmountComponentAtNode
및ReactDOM.findDOMNode
, 그리고에react-dom/server
우리가 서버 측 렌더링 지원을ReactDOMServer.renderToString
하고ReactDOMServer.renderToStaticMarkup
.
이 두 단락은 핵심 API 메소드의 시작 위치를 설명 v0.13
합니다.
v0.14 이전 에는 주요 ReactJs 파일의 일부 였지만 어떤 경우에는 둘 다 필요하지 않으므로 분리하고 버전 0.14부터 시작합니다. 그중 하나만 필요한 경우 앱이 더 작아 질 수 있습니다. 그중 하나만 사용하십시오.
var React = require('react'); /* importing react */
var ReactDOM = require('react-dom'); /* importing react-dom */
var MyComponent = React.createClass({
render: function() {
return <div>Hello World</div>;
}
});
ReactDOM.render(<MyComponent />, node);
React 패키지에는 React.createElement, React.createClass, React.Component, React.PropTypes, React.Children이 포함됩니다.
React-dom 패키지에는 ReactDOM.render, ReactDOM.unmountComponentAtNode, ReactDOM.findDOMNode 및 ReactDOMServer.renderToString 및 ReactDOMServer.renderToStaticMarkup을 포함하는 react-dom / server가 포함됩니다.
ReactDOM 모듈은 DOM 고유의 메소드를 제공하는 반면, React는 다른 플랫폼 (예 : React Native)에서 React가 공유 할 수있는 핵심 도구를 제공합니다.
React react
와 react-dom
패키지 로 분리 된 것처럼 보이 므로 여기에 https 와 같이 DOM 이외의 경우에 사용하려는 프로젝트에 DOM 관련 부분을 사용할 필요가 없습니다 .
그들이 가져 오는 github.com/Flipboard/react-canvas
var React = require('react');
var ReactCanvas = require('react-canvas');
보시다시피 없이 react-dom
.
는 react package
를 보유하고 react source
구성 요소, 상태, 소품하고 반응하는 모든 코드.
react-dom
이름에서 알 수 있듯이 패키지입니다 glue between React and the DOM
. 종종 하나의 단일 목적으로 만 사용합니다 mounting your application to the index.html file with ReactDOM.render()
.
왜 분리해야합니까?
는 reason
반응 ReactDOM은 도착 때문이 라이브러리로 분할되었다 React Native (A react platform for mobile development)
.
ReactDOM
- facebook.github.io/react/blog/2016/11/16/react-v15.4.0.html