React.js 001.
7989 ワード
React.js
Webアプリケーションの重要性が高まるにつれて、市場が拡大し、単一ページアプリケーション(SPA)が登場したため、GoogleはAngularを発売した.jsフレームワークが発売されました.しかし,構造,フレームワークの構成範囲が広いため,難易度が高く,データストリームが把握しにくいという問題がある.そのため、Facebookは既存の問題を解決するために行動します.jsフレームワークが発売されました.
React.jsの特徴
01.DOMと仮想DOM
ステータスの変化を検出して仮想DOMに適用し、一度にDOMに渡すことで、ブラウザの表示回数を減らし、パフォーマンスを向上させます.
この場合、Elementが所有するコンテンツを修正することは、DOMを修正してDOM Treeを再構築する必要があることを意味する.
つまり、Javascriptを簡単に使えば、それぞれ次のようなレンダリングが可能になります.const root = document.querySelector('#root');
const liTags = document.querySelectorAll('li'); // List
// 화면 렌더링 발생 1
liTags[0].textContent = 'red apple';
// 화면 렌더링 발생 2
liTags[1].textContent = 'yellow banana';
// 화면 렌더링 발생 3
liTags[2].textContent = 'yellow mango';
仮想DOMは、次のように、document.createElement
を使用してレンダリングされます.const root = document.querySelector('#root');
const virtualDOM = document.createElement('ul');
virtualDOM.classList.add('list');
const appleLi = document.createElement('li');
appleLi.textContent = 'red apple';
const bananaLi = document.createElement('li');
appleLi.textContent = 'yellow banana';
const mangoLi = document.createElement('li');
appleLi.textContent = 'yellow mango';
virtualDOM.appendChild(appleLi);
virtualDOM.appendChild(bananaLi);
virtualDOM.appendChild(mangoLi);
// 이 당시 한 번 뷰가 다시 렌더링 된다.
root.replaceChild(virtual.DOM, root.querySelector('ul'));
つまり、1つずつレンダリングするのではなく、変化全体を一度にレンダリングし、変化した部分だけを呼び出してレンダリングするので、より効率的に動作します.
02. State
[状態](Status)という特定の値を使用して一方向データ転送を実行し、共有データを使用してレンダリングを制御できます.すなわち、ステータスを設定することで、コンポーネントのステータスを管理することができる.state
およびprops
は、コンポーネント内で定義され、生成され得る.この2つは、スクリーン上でレンダリングする必要があるか、レンダリングに必要な特定の値を表します.(ステータスコントロール、すなわちstate
の値の変化に従ってレンダリング画面を生成するルール.)すなわち、addEventListener
およびremoveEventListener
を使用して、特定の場合にレンダリングされるコンテンツを管理することができる.state
およびstate
は、いずれも文字、定数、関数、配列およびオブジェクトを含むことができるが、props
はコンポーネントが有する特定の状態の値であるため、コンポーネントからstate
関数に変更することができ、setState
は特定のコンポーネントが与える値であり、変更できない値を有する.ただし、親はcalback関数でprops
変更できます.
03. JSX
HTML、CSSの特性を反映しながらJavascriptファイルを作成するには、このJavascriptファイル内でHTML構文を使用するのがJSX構文であり、React環境でビューを作成するために使用されます.
04. Component
State(ステータス)やJSX fileなどを組み合わせて親子関係に接続し、Calback関数を使用して管理できます.
コンポーネントにはクラス、関数型があり、通常は関数型が使用されます.これらのコンポーネントを組み合わせてWebアプリケーションを構築できます.
また,setState
により親子関係,一方向構造を形成し,固定不変のprops
をCallback関数の形で伝達することができる.
Reference
この問題について(React.js 001.), 我々は、より多くの情報をここで見つけました
https://velog.io/@hyoungqu23/React.js-001
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
const root = document.querySelector('#root');
const liTags = document.querySelectorAll('li'); // List
// 화면 렌더링 발생 1
liTags[0].textContent = 'red apple';
// 화면 렌더링 발생 2
liTags[1].textContent = 'yellow banana';
// 화면 렌더링 발생 3
liTags[2].textContent = 'yellow mango';
const root = document.querySelector('#root');
const virtualDOM = document.createElement('ul');
virtualDOM.classList.add('list');
const appleLi = document.createElement('li');
appleLi.textContent = 'red apple';
const bananaLi = document.createElement('li');
appleLi.textContent = 'yellow banana';
const mangoLi = document.createElement('li');
appleLi.textContent = 'yellow mango';
virtualDOM.appendChild(appleLi);
virtualDOM.appendChild(bananaLi);
virtualDOM.appendChild(mangoLi);
// 이 당시 한 번 뷰가 다시 렌더링 된다.
root.replaceChild(virtual.DOM, root.querySelector('ul'));
Reference
この問題について(React.js 001.), 我々は、より多くの情報をここで見つけました https://velog.io/@hyoungqu23/React.js-001テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol