reactdom react purecomponent dangerouslysetinnerhtml change reactjs react-dom

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 y react-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 contiene React.createElement , React.createClass y React.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 contiene ReactDOM.render , ReactDOM.unmountComponentAtNode y ReactDOM.findDOMNode , y en react-dom/server tenemos soporte de representación del lado del servidor con ReactDOMServer.renderToString y ReactDOMServer.renderToStaticMarkup .

Estos dos párrafos explican dónde terminaron los métodos API principales de v0.13 .



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