Saya agak baru bereaksi. Saya melihat kita harus mengimpor dua hal untuk memulai, React
dan ReactDOM
, adakah yang bisa menjelaskan perbedaannya. Saya membaca dokumentasi Bereaksi , tetapi tidak disebutkan.
Saya agak baru bereaksi. Saya melihat kita harus mengimpor dua hal untuk memulai, React
dan ReactDOM
, adakah yang bisa menjelaskan perbedaannya. Saya membaca dokumentasi Bereaksi , tetapi tidak disebutkan.
Jawaban:
React dan ReactDOM baru-baru ini dipecah menjadi dua perpustakaan yang berbeda. Sebelum v0.14, semua fungsi ReactDOM adalah bagian dari React. Ini mungkin menjadi sumber kebingungan, karena dokumentasi yang sedikit bertanggal tidak akan menyebutkan perbedaan React / ReactDOM.
Seperti namanya, ReactDOM adalah perekat antara React dan DOM. Seringkali, Anda hanya akan menggunakannya untuk satu hal: pemasangan bersama ReactDOM.render()
. Fitur lain yang berguna dari ReactDOM adalah ReactDOM.findDOMNode()
yang dapat Anda gunakan untuk mendapatkan akses langsung ke elemen DOM. (Sesuatu yang harus Anda gunakan dengan hemat dalam Bereaksi aplikasi, tetapi itu mungkin diperlukan.) Jika aplikasi Anda "isomorfis", Anda juga akan menggunakan ReactDOM.renderToString()
kode back-end Anda.
Untuk yang lainnya, ada React. Anda menggunakan Bereaksi untuk mendefinisikan dan membuat elemen Anda, untuk kait siklus hidup, dll. Yaitu nyali aplikasi Bereaksi.
Alasan React dan ReactDOM dipecah menjadi dua perpustakaan adalah karena kedatangan React Native. Bereaksi berisi fungsionalitas yang digunakan dalam aplikasi web dan seluler. Fungsionalitas ReactDOM hanya digunakan di aplikasi web. [ PEMBARUAN: Setelah penelitian lebih lanjut, jelas ketidaktahuan saya tentang React Native ditampilkan. Memiliki paket Bereaksi yang umum untuk web dan seluler tampaknya lebih merupakan aspirasi daripada kenyataan saat ini. React Native saat ini merupakan paket yang sama sekali berbeda.]
Lihat posting blog yang mengumumkan rilis v0.14: https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html
Dari pengumuman React v0.14 Beta .
Seperti kita melihat paket seperti
react-native
,react-art
,react-canvas
, danreact-three
, itu menjadi jelas bahwa keindahan dan esensi dari Bereaksi tidak ada hubungannya dengan browser atau DOM.Untuk membuatnya lebih jelas dan untuk membuatnya lebih mudah untuk membangun lebih banyak lingkungan yang Bereaksi dapat render, kami membagi paket reaksi utama menjadi dua: bereaksi dan bereaksi-dom.
Pada dasarnya, gagasan Bereaksi tidak ada hubungannya dengan browser, mereka hanya menjadi salah satu dari banyak target untuk merender pohon komponen menjadi. Paket ReactDOM telah memungkinkan pengembang untuk menghapus kode yang tidak penting dari paket Bereaksi dan memindahkannya ke repositori yang lebih tepat.
The
react
paket berisiReact.createElement
,React.createClass
danReact.Component
,React.PropTypes
,React.Children
, dan pembantu lain yang terkait dengan unsur-unsur dan kelas komponen. Kami menganggap ini sebagai pembantu isomorfik atau universal yang Anda perlukan untuk membangun komponen.The
react-dom
paket berisiReactDOM.render
,ReactDOM.unmountComponentAtNode
danReactDOM.findDOMNode
, dan direact-dom/server
kami memiliki dukungan render server-side denganReactDOMServer.renderToString
danReactDOMServer.renderToStaticMarkup
.
Dua paragraf ini menjelaskan dari mana metode API inti v0.13
berakhir.
Sebelum v0.14 mereka adalah bagian dari file ReactJs utama, tetapi karena dalam beberapa kasus kita mungkin tidak membutuhkan keduanya, mereka memisahkan mereka dan itu dimulai dari versi 0.14, dengan begitu jika kita hanya perlu satu dari mereka, aplikasi kita akan menjadi lebih kecil karena hanya menggunakan salah satu dari itu:
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);
Paket Bereaksi berisi: React.createElement, React.createClass, React.Component, React.PropTypes, React.Children
Paket React-dom berisi: ReactDOM.render, ReactDOM.unmountComponentAtNode, ReactDOM.findDOMNode, dan reaksi-dom / server yang termasuk: ReactDOMServer.renderToString dan ReactDOMServer.renderToStaticMarkup.
Modul ReactDOM memaparkan metode khusus DOM, sementara React memiliki alat inti yang dimaksudkan untuk dibagikan oleh Bereaksi pada platform yang berbeda (mis. React Native).
Sepertinya mereka telah memisahkan Bereaksi menjadi react
dan react-dom
paket, sehingga Anda tidak harus menggunakan bagian yang terkait DOM untuk proyek di mana Anda ingin menggunakannya dalam kasus-kasus non-DOM, seperti di sini https: // github.com/Flipboard/react-canvas
tempat mereka mengimpor
var React = require('react');
var ReactCanvas = require('react-canvas');
seperti yang Anda lihat. Tanpa react-dom
.
Agar lebih ringkas, reaksi adalah untuk komponen dan reaksi-dom adalah untuk rendering komponen dalam DOM. 'react-dom' bertindak sebagai perekat antara komponen dan DOM. Anda akan menggunakan metode render () dari reaksi-dom untuk me-render komponen di DOM dan hanya itu yang harus Anda ketahui ketika Anda mulai menggunakannya.
The react package
memegang react source
komponen, negara, alat peraga dan semua kode yaitu bereaksi.
The react-dom
paket seperti namanya adalahglue between React and the DOM
. Seringkali, Anda hanya akan menggunakannya untuk satu hal: mounting your application to the index.html file with ReactDOM.render()
.
Mengapa memisahkan mereka?
The reason
React dan ReactDOM dipecah menjadi dua perpustakaan karena kedatangan React Native (A react platform for mobile development)
.
ReactDOM
- facebook.github.io/react/blog/2016/11/16/react-v15.4.0.html