ホームページ > 記事 > ウェブフロントエンド > React JSX_html/css_WEB-ITnose の使用を開始する
https://github.com/hulufei/react-tutorial より転載
コンポーネント。 2 つの規則は大文字と小文字で区別されます。小文字の
string
は HTML タグであり、大文字のvariable は React コンポーネントです。 HTML タグを使用します:
import React from 'react';import { render } from 'react-dom';var myDivElement = <div className="foo" />;render(myDivElement, document.getElementById('mountNode'));class は JS の予約キーワードであるため、HTML のクラスは JSX の className として記述する必要があります。同様に、for などの一部の属性は htmlFor として記述する必要があります。
import React from 'react';import { render } from 'react-dom';import MyComponent from './MyComponet';var myElement = <MyComponent someProperty={true} />;render(myElement, document.body);JavaScript 式を使用する
// Input (JSX):var person = <Person name={window.isLoggedIn ? window.name : ''} />;// Output (JS):var person = React.createElement( Person, {name: window.isLoggedIn ? window.name : ''});
// Input (JSX):var content = <Container>{window.isLoggedIn ? <Nav /> : <Login />}</Container>;// Output (JS):var content = React.createElement( Container, null, window.isLoggedIn ? React.createElement(Nav) : React.createElement(Login));コメント
JavaScript を使用するだけです。唯一注意すべき点は、コンポーネントのサブ要素の位置でコメントを使用する場合は、コメントを {} で囲む必要があることです。
var content = ( <Nav> {/* child comment, put {} around */} <Person /* multi line comment */ name={window.isLoggedIn ? window.name : ''} // end of line comment /> </Nav>);
HTML Escape
に ©(©) などのエスケープされたエンティティ文字が含まれている場合、
React が © 内の特殊文字を自動的にエスケープするため、DOM では正しく表示されません。いくつかの解決策があります:
UTF-8 文字を直接使用する ©
<div dangerouslySetInnerHTML={{__html: 'cc © 2015'}} />
, この属性は無視されます。カスタム属性を使用したい場合は、data- プレフィックスを使用できます。
アクセシビリティ属性の接頭辞 aria- もサポートされています。
サポートされているタグと属性
どうしても使用しなければならない場合は、問題を報告するか、前述の危険な SetInnerHTML を使用してください。その上。