Bertindak balas JSX
React menggunakan JSX dan bukannya JavaScript biasa.
JSX ialah sambungan sintaks JavaScript yang kelihatan seperti XML.
Kami tidak semestinya perlu menggunakan JSX, tetapi ia mempunyai kelebihan berikut:
JSX berprestasi lebih pantas kerana ia dioptimumkan selepas disusun ke dalam kod JavaScript.
Ia selamat jenis dan ralat boleh ditemui semasa penyusunan.
Menulis templat menggunakan JSX adalah lebih mudah dan pantas.
Menggunakan JSX
JSX kelihatan serupa dengan HTML, kita boleh lihat contoh:
ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('example') );
Kita boleh menyarangkannya di atas kod Teg HTML berbilang perlu dibalut dengan elemen div Elemen p dalam contoh mempunyai atribut tersuai data-myattribute untuk menambah atribut tersuai, anda perlu menggunakan data-. awalan.
Instance
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>php中文网 React 实例</title> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script> <script src="http://static.php.cn/assets/react/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> ReactDOM.render( <div> <h1>php中文网</h1> <h2>欢迎学习 React</h2> <p data-myattribute = "somevalue">这是一个很不错的 JavaScript 库!</p> </div> , document.getElementById('example') ); </script> </body> </html>
Run Instance»
Klik butang "Run Instance" untuk melihat contoh dalam talian
Fail bebas
Kod React JSX anda boleh diletakkan pada fail bebas Sebagai contoh, kami mencipta fail helloworld_react.js
dengan kod berikut:
ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('example') );
Kemudian perkenalkan. ini dalam fail HTML fail JS:
Instance
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Hello React!</title> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script> <script src="http://static.php.cn/assets/react/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel" src="helloworld_react.js"></script> </body> </html>
Run Instance»
Klik butang "Run Instance" untuk melihat contoh dalam talian
Ungkapan JavaScript
Kami boleh menggunakan ungkapan JavaScript dalam JSX. Ungkapan ditulis dalam kurungan kerinting {}. Contohnya adalah seperti berikut:
Instance
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>php中文网 React 实例</title> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script> <script src="http://static.php.cn/assets/react/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> ReactDOM.render( <div> <h1>{1+1}</h1> </div> , document.getElementById('example') ); </script> </body> </html>
Run Instance»
Klik butang "Run Instance" untuk melihat contoh dalam talian
tidak boleh menggunakan pernyataan jika lain dalam JSX Anda boleh menggunakan ungkapan bersyarat (operasi ternari) . Dalam contoh berikut, jika pembolehubah i sama dengan 1, penyemak imbas akan mengeluarkan true Jika nilai i diubah, ia akan mengeluarkan palsu.
Instance
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>php中文网 React 实例</title> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script> <script src="http://static.php.cn/assets/react/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var i = 1; ReactDOM.render( <div> <h1>{i == 1 ? 'True!' : 'False'}</h1> </div> , document.getElementById('example') ); </script> </body> </html>
Run Instance»
Klik butang "Run Instance" untuk lihat contoh dalam talian
Gaya
React mengesyorkan menggunakan gaya sebaris. Kita boleh menggunakan sintaks camelCase untuk menetapkan gaya sebaris React akan menambah px secara automatik selepas menyatakan nombor elemen. Contoh berikut menunjukkan penambahan myStyle gaya sebaris pada elemen h1:
Contoh
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>php中文网 React 实例</title> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script> <script src="http://static.php.cn/assets/react/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var myStyle = { fontSize: 100, color: '#FF0000' }; ReactDOM.render( <h1 style = {myStyle}>php中文网</h1>, document.getElementById('example') ); </script> </body> </html>
Jalankan contoh»
Klik butang "Jalankan contoh" untuk melihat contoh dalam talian
Ulasan
Ulasan perlu ditulis dalam kurungan kerinting , contohnya adalah seperti berikut:
Instance
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>php中文网 React 实例</title> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script> <script src="http://static.php.cn/assets/react/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> ReactDOM.render( <div> <h1>php中文网</h1> {/*注释...*/} </div>, document.getElementById('example') ); </script> </body> </html>
Run Instance»
Klik butang "Run Butang Instance" untuk melihat contoh dalam talian
Array
JSX membenarkan memasukkan tatasusunan dalam templat dan tatasusunan akan mengembangkan semua ahli secara automatik:
Instance
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>php中文网 React 实例</title> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.min.js"></script> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.min.js"></script> <script src="http://static.php.cn/assets/react/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var arr = [ <h1>php中文网</h1>, <h2> php中文网</h2>, ]; ReactDOM.render( <div>{arr}</div>, document.getElementById('example') ); </script> </body> </html>
Run instance»
Klik butang "Run instance" untuk melihat instance dalam talian
Teg HTML lwn. komponen React
React boleh menghasilkan teg HTML (rentetan) atau komponen React (kelas).
Untuk memaparkan teg HTML, hanya gunakan nama teg huruf kecil dalam JSX.
var myDivElement = <div className="foo" />; ReactDOM.render(myDivElement, document.getElementById('example'));
Untuk memaparkan komponen React, cuma buat pembolehubah setempat bermula dengan huruf besar.
var MyComponent = React.createClass({/*...*/}); var myElement = <MyComponent someProperty={true} />; ReactDOM.render(myElement, document.getElementById('example'));
JSX React menggunakan konvensyen huruf besar dan huruf kecil untuk membezakan antara kelas komponen asli dan teg HTML.
Nota:
Memandangkan JSX ialah JavaScript, beberapa pengecam seperti
class
danfor
tidak disyorkan sebagai XML Nama harta. Sebaliknya, React DOM menggunakanclassName
danhtmlFor
untuk atribut yang sepadan.