応答-JSX
15332 ワード
JSX
反応器で素子の形状を定義するときに使用する構文.
一見htmlっぽく見えますが、実はJavaScript…?
どうしよう.Babelを使用するとxml形式のコードをJavaScriptに変換できます.
Babel
JavaScriptコンパイラです.入力はJavaScriptコード、出力もJavaScriptコードです.ブラウザは最新バージョンのJavaScript構文を理解していないため、babelはブラウザが理解できる構文に変換します.
うん。本当ですか。
信じないなら自分で実習しなさい.次のリンクに進むと、babelがxmlコードをJavaScriptに変換する方法が表示されます.
babel try it out
リンクに入ると下の画像と同じ画面が表示され、分割画面の左側にxmlコードが入力され、右側にJavaScriptに変換された画面が表示されます.
たとえば、xmlコードを作成して「hello react」を出力します.(
<div>
<b>Hello,</b> <span>React</span>
</div>
)
次のコードが表示されます."use strict";
/*#__PURE__*/
React.createElement("div", null,
/*#__PURE__*/React.createElement("b", null, "Hello,"), " ",
/*#__PURE__*/React.createElement("span", null, "React"));
React.creatElement
でコンポーネントを作成すると、作成するたびに使用するのは不便です.しかしbabelは私のためにこの不便なことをしています.しかし、babelには勝手に書くのではなく、書くルールが存在する.
Babelルール
①ラベルは閉じている必要があります。
当たり前のことと言える.タグの宣言を完了するには、タグを完全に閉じる必要がありますが、タグが完了していない場合は変換コンパイルがエラーになります.
②2つ以上のラベルは1つのラベルに包まなければならない。
<div>
<Hello/>
<Hello/>
<Hello/>
</div>
div
というタグの中にHello
というタグが3つありますが、ここでdiv
を外して運転するとエラーが発生します.
ラベルを保護するためにdiv
を作成するのは少し汚いと思います.
ラベルは<>
</>
で包むことができます. <>
<Hello/>
<Hello/>
<Hello/>
</>
※return
で下のラベルを括弧で丸めていますが、実はこの括弧は可読性を高めるために存在し、なくてもコードは正常に動作します.
内部でのJAVASCRITT値の使用
では、jsx内部でJavaScript値を使用する方法を見てみましょう.import React from "react";
import Hello from "./Hello";
function App() {
const name ='react'
return (
<>
{name}
<Hello/>
<Hello/>
<Hello/>
</>
);
}
export default App;
JavaScriptで変数nameを宣言し、その値をhtmlに表示する場合は、return
の内部に変数の名前を括弧で囲む必要があります.
内部でCSSを使う
import React from "react";
import Hello from "./Hello";
function App() {
const name ='react'
const style = {
backgroundColor: 'black',
color:'aqua',
fontSize: 24,
padding: '1rem'
}
return (
<>
<div style = {style}>{name}</div>
<Hello/>
<Hello/>
<Hello/>
</>
);
}
export default App;
styleという名前のオブジェクトを作成し、htmlで使用されるclass=""方式ではなく、必要な属性を作成する必要があります.background-color
のように-
がある場合、backgroundColor
はcamelcaseで記述されるべきである.
自分の希望する属性を作成した後、そのコンポーネントラベルにstyle={style}
と書くと、自分の希望するスタイルが適用されていることがわかります.
外部CSSを読み込み使用
App.cssという名前のファイルを作成し、次のコードを作成して保存します..gray-box {
background: gray;
width: 64px;
height: 64px;
}
アプリもありますjsファイルにimport './App.css';
の構文を記述します.これは、「App.cssの要素を読み込み、使用する」ことを意味します.だから私はApp.css
の中にいますgray-boxを使用するには、必要なラベルにclassName = "gray-box"
と記入します. return (
<>
<div style = {style}>{name}</div>
<Hello/>
<Hello/>
<Hello/>
<div className="gray-box"></div>
</>
);
コメント
通常は/**/を直接使用しますが、reactの場合はここにカッコを付ける必要があります.追加しないとコメントとして認識されないため、コンテンツは直接画面に出力されます.
ex{/どんな内容/}
タグ内部に注釈を記述する場合、//
を使用して注釈を記述することができる.<Hello
//무슨무슨 컴퍼넌트라는 설명
/>
整理する
(
<div>
<b>Hello,</b> <span>React</span>
</div>
)
"use strict";
/*#__PURE__*/
React.createElement("div", null,
/*#__PURE__*/React.createElement("b", null, "Hello,"), " ",
/*#__PURE__*/React.createElement("span", null, "React"));
<div>
<Hello/>
<Hello/>
<Hello/>
</div>
<>
<Hello/>
<Hello/>
<Hello/>
</>
import React from "react";
import Hello from "./Hello";
function App() {
const name ='react'
return (
<>
{name}
<Hello/>
<Hello/>
<Hello/>
</>
);
}
export default App;
import React from "react";
import Hello from "./Hello";
function App() {
const name ='react'
const style = {
backgroundColor: 'black',
color:'aqua',
fontSize: 24,
padding: '1rem'
}
return (
<>
<div style = {style}>{name}</div>
<Hello/>
<Hello/>
<Hello/>
</>
);
}
export default App;
.gray-box {
background: gray;
width: 64px;
height: 64px;
}
return (
<>
<div style = {style}>{name}</div>
<Hello/>
<Hello/>
<Hello/>
<div className="gray-box"></div>
</>
);
<Hello
//무슨무슨 컴퍼넌트라는 설명
/>
Babelルール:ラベルは閉じている必要があります.2つ以上のラベルは異なるラベルで包まなければなりません.
内部でJavascriptを使用する:変数を宣言しreturn'内部にカッコを付けて記述します.
CSSの内部使用:styleという名前のオブジェクトを作成し、必要なプロパティを作成し、適用するコンポーネントラベルに
style={style}
を作成します.外部読み込みCSS使用:cssファイルを作成します.jsファイルに
import './무슨무슨.css';
という構文を作成します..cssのクラスを使用するには、必要なラベルに
className = "클래스"
と記入します.注釈の使用:
{/*무슨무슨 내용*/}
、タグ内に注釈を作成する場合は//
Reference
この問題について(応答-JSX), 我々は、より多くの情報をここで見つけました https://velog.io/@jhs000123/리액트-JSXテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol