コア反応コンセプト
10099 ワード
ハローフェロー👋,
まだ存在していないDOMの要素を作成し、id“root”でdivに追加したいとしましょう.
それから、これはバニラJavaScriptで行うことです.
HTML
JSXとは
JSX JavaScriptへの構文拡張.
JavaScriptファイルとUIを結合することができます.
それは言っている
✏ 注意:
お読みくださいthe previous post , あなたがわからないならば
JSXはHTMLとJavaScriptの組み合わせであるのでBabel JSXを翻訳し、HTMLをページに表示するには.
CDNを使うとき、BabelのCDNを含める必要があります.
我々は、我々が使用するBabelを有効にする反応ライブラリをインポートする必要があります
✏ 注意:
オプションですが、JSXコードを含むファイルを保存できます
JSXの多くの要素
JSXでは互いの隣に複数の要素を持つことはできないことに注意してください.
多くの要素をレンダリングする場合、これらの要素を開始タグと終了タグの内側にラップする必要があります.
一部の開発者はフラグメントを使用します
アクセシビリティ目的のために、余分なものを与えないので、我々はより良い断片を使用します
開始および終了ラッパータグの中に住んでいるものは何でも呼ばれますchildren property .
クロージングタグ
JSXはHTMLより厳格です.
JSXの基本的なルールは、すべての要素が終了タグを持つ必要があることです.
HTMLタグのような
JSXでは、これらのタグを閉じなければなりません.さもなければ、構文エラーを取得します.
JavascriptのJSXへの埋め込み
前の例では、見出しと段落をハードコーディングしました.
どのような場合は、値を動的に変更することができますか?
JavaScriptを書き込む
JavaScriptとHTMLの間のセパレータとして見ることができます.
✏ 重要な注意:
どんなものでも
結論 JSXはJavaScriptでHTMLのようなコードを直接入力できる構文です. JSXの基本ルール 明示的な終了タグを持ちます. 自己閉鎖: 多くのJSX要素があるときラッパを持ってください; JavaScriptを書き込む 読んでくれてありがとう!
最後に、少なくとも、あなたは私を見つけることができます.つながりましょう!😊
まだ存在していないDOMの要素を作成し、id“root”でdivに追加したいとしましょう.
それから、これはバニラJavaScriptで行うことです.
HTML
<body>
<div id="root"></div>
</body>
ジャバスクリプトconst root = document.getElementById('root')
const h1 = document.createElement("h1")
h1.innerHTML = "Hello World"
root.appendChild(h1)
反応は、上記のように長いコードを書くことから我々に利益をもたらすJSXと呼ばれているユニークな構文を持っています.JSXとは
JSX JavaScriptへの構文拡張.
JavaScriptファイルとUIを結合することができます.
ReactDOM.render(<h1>Hello World</h1>, document.getElementById("root"))
上の例では<h1>
JavaScriptのメソッドの中のタグ.それは言っている
<h1>
IDを持つ要素でroot
"✏ 注意:
お読みくださいthe previous post , あなたがわからないならば
ReactDOM.render()
作品JSXはHTMLとJavaScriptの組み合わせであるのでBabel JSXを翻訳し、HTMLをページに表示するには.
CDNを使うとき、BabelのCDNを含める必要があります.
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
我々は、我々が使用するBabelを有効にする反応ライブラリをインポートする必要があります
create-react-app
パッケージ.import React from 'react'
オプションですが、JSXコードを含むファイルを保存できます
.jsx
の代わりに.js
(例:Header.jsx
). このようにして、ファイルにJSXコードがあることに気付きます.JSXの多くの要素
JSXでは互いの隣に複数の要素を持つことはできないことに注意してください.
多くの要素をレンダリングする場合、これらの要素を開始タグと終了タグの内側にラップする必要があります.
一部の開発者はフラグメントを使用します
<></>
), いくつかの使用<div></div>
ラッパーとして.アクセシビリティ目的のために、余分なものを与えないので、我々はより良い断片を使用します
<div>
. このように、それはスクリーン読者を使用する人々のためにより混乱しません.const element = (
<>
<h1>Hello World</h1>
<p>How are you?</p>
</>
)
ReactDOM.render(element, document.getElementById("root"))
良い読み取り可能な目的のためには、一般的な練習では()
.開始および終了ラッパータグの中に住んでいるものは何でも呼ばれますchildren property .
クロージングタグ
JSXはHTMLより厳格です.
JSXの基本的なルールは、すべての要素が終了タグを持つ必要があることです.
HTMLタグのような
<input>
, <img>
, <br>
, <hr>
, など.JSXでは、これらのタグを閉じなければなりません.さもなければ、構文エラーを取得します.
const element = (
<>
<h1>Hello World</h1>
<br />
<p>How are you?</p>
<input type="text" placeholder="Type your message" />
<button>Submit</button>
</>
)
ReactDOM.render(element, document.getElementById("root"))
JavascriptのJSXへの埋め込み
前の例では、見出しと段落をハードコーディングしました.
どのような場合は、値を動的に変更することができますか?
JavaScriptを書き込む
{}
JavaScript関数とメソッドを実行することができます.JavaScriptとHTMLの間のセパレータとして見ることができます.
const title = "Random Number"
function randomNum() {
return Math.floor((Math.random() * 10) + 1)
}
const myNum = (
<div>
<h1>{title}</h1>
<h2>My number is: {randomNum()}</h2>
</div>
)
ReactDOM.render(myNum, document.getElementById("root"))
さて、<h1>
私たちはタイトルを変更するときに更新されます.そして、我々はページをリフレッシュするたびに、乱数が生成されます.✏ 重要な注意:
どんなものでも
{}
はJavascript expression .結論
<p></p>
. <input />
. <></>
or <div></div>
{}
JSXでJavaScriptのロジックを使用することができます.と内部のロジック{}
JavaScript式である必要があります.最後に、少なくとも、あなたは私を見つけることができます.つながりましょう!😊
Reference
この問題について(コア反応コンセプト), 我々は、より多くの情報をここで見つけました https://dev.to/adiatiayu/core-react-concept-jsx-1f02テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol