Resact JSX概要
JSX概要
Hello world
読みながら実習したい人はまずreact-create-appを見てみましょう.
<!-- HTML -->
<div id="root"></div>
//jsx
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('root')
);
まず基本的なHelloworldから画面に出力します.HTMLではdivのid値はrootです.jsxでgetElementByIdというIDのタグを見つけ、h 1タグを加えてレンダリングします.
ここでJSXとは何ですか.
const element = <h1>Hello, world!</h1>;
はJSXで、JavaScriptを拡張する構文です.XMLと同様に、コードがブラウザで実行される前に、コードはバインド中にバーベルを使用して通常のJavaScript形式のコードに変換されます.const name = 'LEE HYUNHO';
const element = <h1>Hello, {name}</h1>;
ReactDOM.render(
element,
document.getElementById('root')
);
前述したように、JavaScript変数を宣言して括弧で囲み、JSXで使用することができます.
function formatName(user) {
return user.firstName + ' ' + user.lastName;
}
const user = {
firstName: 'LEE',
lastName: 'HYUNHO'
};
const element = (
<h1>
Hello, {formatName(user)}!
</h1>
);
ReactDOM.render(
element,
document.getElementById('root')
);
カッコ内に関数を入れることもできます.結果はHelloLeeHyunhofunction getGreeting(user) {
if (user) {
return <h1>Hello, {formatName(user)}!</h1>;
}
return <h1>Hello, Stranger.</h1>;
}
function formatName(user) {
return user.firstName + ' ' + user.lastName;
}
const user = {
firstName: 'LEE',
lastName: 'HYUNHO'
};
const element = (
<h1>
{getGreeting(user)}
</h1>
);
ReactDOM.render(
element,
document.getElementById('root')
);
JSXも式です.JSXはif,forなどに用い,変数に割り当て,パラメータとして受け入れ,関数から返すことができる.userがなければ、上記の結果が得られます.
JSX属性
文字列の定義
const element = <div id="root"></div>;
」と定義します.属性にJS式を挿入
const element = <img src={user.avatarUrl}></img>;
かっこを使用します.camelCase
JSXはHTMLよりJSに近い.したがって、HTML属性名の代わりにCamelCaseを使用します.
ex)class=className=「btn」ではなく「btn」を使用
JSXサブアイテム定義
空のラベル
const element = <img src={user.avatarUrl} />;
XMLのように、空のタグをすぐに閉じましょう.やれやれ.
const element = (
<div>
<h1>Hello!</h1>
<h2>Good to see you here.</h2>
</div>
);
JSXタグにはサブアイテムを含めることができます.const title = response.potentiallyMaliciousInput;
// 이것은 안전합니다.
const element = <h1>{title}</h1>;
REACT DOMは、JSXに挿入されたすべての値をレンダリングする前にescapeを行う.また、すべての項目が文字列に変換されるため、アプリケーションが明確に作成していない内容は注入されません.(どういう意味かわかりませんが…)JSX表示対象
const element = (
<h1 className="greeting">
Hello, world!
</h1>
);
const element = React.createElement(
'h1',
{className: 'greeting'},
'Hello, world!'
);
この2つの例は同じです.BaelはJSXをreact.createElement()
呼び出しにコンパイルする.const element = {
type: 'h1',
props: {
className: 'greeting',
children: 'Hello, world!'
}
};
こうしてこのような対象が生まれた.(=reactエイリアス)reactは、これらのオブジェクトを読み取り、DOMを整理し、最新の状態を維持するために使用される.
JSX > React.要素>仮想DOM>reactDOMの登録
Reference
この問題について(Resact JSX概要), 我々は、より多くの情報をここで見つけました https://velog.io/@leehyunho2001/React-JSX-소개テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol