Saya bermain-main dengan kerangka kerja ReactJS di JSBin .
Saya perhatikan bahwa jika nama komponen saya dimulai dengan huruf kecil tidak berfungsi.
Misalnya yang berikut ini tidak menyajikan:
var fml = React.createClass({
render: function () {
return <a href='google.com'>Go</a>
}
});
React.render(<fml />, document.body);
Tapi begitu saya ganti fml
dengan Fml
itu tidak membuat.
Apakah ada alasan saya tidak dapat memulai tag dengan huruf kecil?
javascript
reactjs
shaunakde
sumber
sumber
Jawaban:
Di JSX, nama tag huruf kecil dianggap sebagai tag HTML. Namun, nama tag huruf kecil dengan titik (pengakses properti) tidak.
Lihat tag HTML vs Komponen Bereaksi .
<component />
kompilasi keReact.createElement('component')
(tag html)<Component />
kompilasi keReact.createElement(Component)
<obj.component />
kompilasi keReact.createElement(obj.component)
sumber
let component = components[compType]; <component/>
, dan mendapatkan kesalahan yang tidak masuk akal.<components[name] />
yang tidak berhasil juga.Components
alih-alihcomponents
, situs mereka yang indah akan dimuat tanpa kesalahan tetapi tidak ada konten!@Alexandre Kirszenberg memberikan jawaban yang sangat bagus, hanya ingin menambahkan detail lain.
Bereaksi dulu mengandung daftar putih nama-nama elemen terkenal seperti
div
dll, yang digunakan untuk membedakan antara elemen DOM dan komponen Bereaksi.Tetapi karena mempertahankan daftar itu tidak terlalu menyenangkan, dan karena komponen web memungkinkan untuk membuat elemen khusus, mereka membuatnya aturan bahwa semua komponen Bereaksi harus dimulai dengan huruf besar, atau mengandung titik .
sumber
Dari referensi Bereaksi resmi :
Perhatikan juga bahwa:
Yang berarti kita harus menggunakan:
const Foo = foo;
sebelum digunakanfoo
sebagai elemen Komponen di BEJ.sumber
Bagian pertama dari
JSX
tag menentukan jenis elemen Bereaksi, pada dasarnya ada beberapa huruf besar, huruf kecil, notasi titik .Tipe huruf kapital dan notasi titik menunjukkan bahwa
JSX
tag merujuk ke komponen Bereaksi, jadi jika Anda menggunakan<Foo />
kompilasi JSX keReact.createElement(Foo)
ATAU
<foo.bar />
kompilasi keReact.createElement(foo.bar)
dan sesuai dengan komponen yang ditentukan atau diimpor dalam file JavaScript Anda.Sementara tipe huruf kecil menunjukkan komponen bawaan seperti
<div>
atau<span>
dan menghasilkan string'div'
atau'span'
diteruskan keReact.createElement('div')
.Bereaksi merekomendasikan penamaan komponen dengan huruf besar. Jika Anda memiliki komponen yang dimulai dengan huruf kecil, tetapkan ke variabel dengan huruf besar sebelum menggunakannya
JSX
.sumber
Di JSX, React Classes dikapitalisasi untuk membuat XML kompatibel, sehingga tidak keliru untuk tag HTML. Jika kelas reaksi tidak dikapitalisasi, ini adalah tag HTML sebagai sintaks JSX yang telah ditentukan.
sumber