文書による機能部品createelement、反応する.CreateElementとJSX
9681 ワード
先週、私はラムラ学校で学生に、バニラJSで再利用できる機能的な構成要素をつくる方法を学びました.今週、彼らは反応で機能的な構成要素をつくる方法を学びます.私はバニラJSで彼らが書いたコンポーネントを取っていて、反応で彼らを再現しているように、少し彼らの知識をブリッジするのを助けたかったです.CreateElementとJSXを使用します.
それで始めましょう.
まず、バニラJSコンポーネントがあります.目標は再利用可能なパネルコンポーネントを作成することでした.(このブログ記事に必要なコードや目的を削除しました)
学生は、機能的なコンポーネントと文書の使い方について学びました.DOMに要素を追加するCreateElement.
私は、両方とも反応して、これを「反応する方法」をする方法を示したかったです.CreateElementとJSX
反応を見てみましょう.CreateElement最初.
これらの両方ともうまく動作しますが、とても冗長です.
これはJSXが入っているところです.
JSXはほぼHTMLのように見えますが、JavaScriptを使用してコンポーネントにさらに多くのパワーを追加する機能があります.
以下はJSXのコードの例です.createElement .
私たちは、それぞれの要素を作成し、クラス名やテキストコンテンツを与えています.
これは、ドキュメントとコンポーネントを作成する簡単な比較でした.createelement、反応する.CreateElementとJSXでは、各方法の使用方法を説明します.このCodeDandboxを見て、ここで使用されているすべてのコードを見て、どのように小道具を使用しているかを見てみましょう.
それで始めましょう.
まず、バニラJSコンポーネントがあります.目標は再利用可能なパネルコンポーネントを作成することでした.(このブログ記事に必要なコードや目的を削除しました)
学生は、機能的なコンポーネントと文書の使い方について学びました.DOMに要素を追加するCreateElement.
私は、両方とも反応して、これを「反応する方法」をする方法を示したかったです.CreateElementとJSX
反応を見てみましょう.CreateElement最初.
反応する。createelement
var Panel = function Panel(props) {
var title = props.title,
content = props.content;
return React.createElement(
"div",
{
className: "panel"
},
React.createElement(
"div",
{
className: "panel-bar"
},
React.createElement("h3", null, title),
React.createElement(
"div",
{
className: "panel-buttons"
},
React.createElement(
"button",
{
className: "panel-btn-open"
},
"Open"
),
React.createElement(
"button",
{
className: "panel-btn-close hide-btn"
},
"Close"
)
)
),
React.createElement(
"div",
{
className: "panel-content"
},
content
)
);
};
あなたは反応の上のコードから見ることができます.CreateElementウェイはドキュメントの使用に非常に似ています.createElement .反応する。createelement
React.createElement(
"button",
{
className: "panel-btn-open"
},
"Open"
),
ドキュメント。createelement
const buttonOpen = document.createElement('button');
buttonOpen.classList.add('panel-btn-open');
buttonOpen.textContent = 'Open';
要素を作成します.この場合、私たちはそれをクラス、パネルBTNオープンを与えて、それにテキスト内容を与えますこれらの両方ともうまく動作しますが、とても冗長です.
これはJSXが入っているところです.
日本学術振興会
JSXはほぼHTMLのように見えますが、JavaScriptを使用してコンポーネントにさらに多くのパワーを追加する機能があります.
以下はJSXのコードの例です.createElement .
const Panel = props => {
const { title, content } = props;
return (
<div className="panel">
<div className="panel-bar">
<h3>{title}</h3>
<div className="panel-buttons">
<button className="panel-btn-open">Open</button>
<button className="panel-btn-close hide-btn">Close</button>
</div>
</div>
<div className="panel-content">{content}</div>
</div>
);
};
私の意見では、これは多くの読みやすく理解し、前の2つの方法より一目でわかります.私たちは、それぞれの要素を作成し、クラス名やテキストコンテンツを与えています.
これは、ドキュメントとコンポーネントを作成する簡単な比較でした.createelement、反応する.CreateElementとJSXでは、各方法の使用方法を説明します.このCodeDandboxを見て、ここで使用されているすべてのコードを見て、どのように小道具を使用しているかを見てみましょう.
Reference
この問題について(文書による機能部品createelement、反応する.CreateElementとJSX), 我々は、より多くの情報をここで見つけました https://dev.to/coffeecraftcode/functional-components-with-document-createelement-react-createelement-and-jsx-28kpテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol