reactjs - purecomponent - react router
Reaccionar frente a ReactDOM? (6)
Antes de la v0.14 , formaban parte del archivo principal de ReactJs, pero como en algunos casos puede que no necesitemos ambos, los separan y comienza a partir de la versión 0.14, de esa manera si solo necesitamos uno de ellos, nuestra aplicación será más pequeña debido a usando solo uno de esos:
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);
El paquete React contiene: React.createElement, React.createClass, React.Component, React.PropTypes, React.Children
El paquete React-dom contiene: ReactDOM.render, ReactDOM.unmountComponentAtNode, ReactDOM.findDOMNode y react-dom / server que incluye: ReactDOMServer.renderToString y ReactDOMServer.renderToStaticMarkup.
Soy un poco nuevo para reaccionar.
Veo que tenemos que importar dos cosas para comenzar,
React
y
ReactDOM
, ¿alguien puede explicar la diferencia?
Estoy leyendo la
documentación de React
, pero no dice.
Del anuncio de lanzamiento de React v0.14 Beta .
A medida que analizamos paquetes como
react-native
,react-art
,react-canvas
yreact-three
, queda claro que la belleza y la esencia de React no tienen nada que ver con los navegadores o el DOM.Para aclarar esto y facilitar la creación de más entornos en los que React pueda procesar, estamos dividiendo el paquete principal de reacción en dos: react y react-dom.
Fundamentalmente, la idea de React no tiene nada que ver con los navegadores, simplemente resultan ser uno de los muchos objetivos para procesar árboles de componentes. El paquete ReactDOM ha permitido a los desarrolladores eliminar agregar código no esencial del paquete React y moverlo a un repositorio más apropiado.
El paquete
React.createElement
contieneReact.createElement
,React.createClass
yReact.Component
,React.PropTypes
,React.Children
y los otros ayudantes relacionados con elementos y clases de componentes. Pensamos en estos como los ayudantes isomórficos o universales que necesita para construir componentes.El paquete
react-dom
contieneReactDOM.render
,ReactDOM.unmountComponentAtNode
yReactDOM.findDOMNode
, y enreact-dom/server
tenemos soporte de representación del lado del servidor conReactDOMServer.renderToString
yReactDOMServer.renderToStaticMarkup
.
Estos dos párrafos explican dónde terminaron los métodos API principales de
v0.13
.
El módulo ReactDOM expone métodos específicos de DOM, mientras que React tiene las herramientas principales destinadas a ser compartidas por React en diferentes plataformas (por ejemplo, React Native).
Para ser más conciso, reaccionar es para los componentes y react-dom es para representar los componentes en el DOM. ''react-dom'' actúa como un pegamento entre componentes y DOM. Utilizará el método render () del react-dom para renderizar componentes en el DOM y eso es todo lo que debe saber cuando comience con él.
Parece que han separado React en paquetes
react
y
react-dom
, por lo que no tiene que usar la parte relacionada con DOM para proyectos donde le gustaría usarla en casos no específicos de DOM, como aquí
react-canvas
donde importan
var React = require(''react'');
var ReactCanvas = require(''react-canvas'');
como puedes ver.
Sin
react-dom
.
React y ReactDOM se dividieron recientemente en dos bibliotecas diferentes. Antes de v0.14, toda la funcionalidad de ReactDOM era parte de React. Esto puede ser una fuente de confusión, ya que cualquier documentación ligeramente fechada no mencionará la distinción React / ReactDOM.
Como su nombre lo indica, ReactDOM es el pegamento entre React y el DOM.
A menudo, solo lo usará para una sola cosa: montar con
ReactDOM.render()
.
Otra característica útil de ReactDOM es
ReactDOM.findDOMNode()
que puede usar para obtener acceso directo a un elemento DOM.
(Algo que debe usar con moderación en las aplicaciones React, pero puede ser necesario). Si su aplicación es "isomorfa", también usaría
ReactDOM.renderToString()
en su código de fondo.
Para todo lo demás, está React. Utiliza React para definir y crear sus elementos, para ganchos de ciclo de vida, etc., es decir, las entrañas de una aplicación React.
La razón por la que React y ReactDOM se dividieron en dos bibliotecas se debió a la llegada de React Native. React contiene la funcionalidad utilizada en aplicaciones web y móviles. La funcionalidad ReactDOM se utiliza solo en aplicaciones web. [ ACTUALIZACIÓN: Luego de más investigaciones, está claro que mi ignorancia de React Native se está mostrando. Tener el paquete React común tanto en la web como en los dispositivos móviles parece ser más una aspiración que una realidad en este momento. React Native es actualmente un paquete completamente diferente.]
Vea la publicación del blog que anuncia la versión v0.14: https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html