第4章. 和解の内側
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
Reactを本当に使いこなせるようになるには、Reactの関数が何をするのかを理解する必要がある。これまで、JSXとReact.createElement を理解してきた。また、仮想DOMについてもある程度理解できた。この章では、Reactにおける仮想DOMの実用的なアプリケーションを探求し、 ReactDOM.createRoot(element).render() が何をするのかを理解しよう。具体的には、Reactが仮想DOMを構築し、リコンシリエーションと呼ばれるプロセスを通じて実際のDOMを更新する方法を探求する 。
和解を理解する
簡単にまとめると、Reactの仮想DOMは、私たちが望むUIの状態のブループリントである。Reactはこのブループリントを受け取り、リコンシリエーションと呼ばれるプロセスを経て、指定されたホスト環境(通常はウェブ・ブラウザだが、シェルやiOSやAndroidのようなネイティブ・プラットフォームなど、他の環境である可能性もある)でそれを実現する。
次のコード・スニペットを考えてみよう:
import{useState}from"react";constApp=()=>{const[count,setCount]=useState(0);return(<main><div><h1>Hello,world!</h1><span>Count:{count}</span><buttononClick={()=>setCount(count+1)}>Increment</button></div></main>);};
このコード・スニペットには、UIの状態をどうしたいかという宣言的な記述が含まれている:要素のツリー 。チームメイトもReactもこれを読み取り、私たちがカウンターをインクリメントするインクリメント・ボタンのあるカウンター・アプリを作成しようとしていることを理解できる。和解を理解するために、このようなコンポーネントに直面したときにReactが内部で何をするのかを理解しよう。
まず、JSXはReact要素のツリーになる。これは第3章で見たとおりだ。呼び出されると、App コンポーネントはReact要素を返し、その子要素はさらにReact要素である。React要素は(我々にとって)不変性であり、UIの望ましい状態を表す。実際のUIの状態ではない。React要素は、React.createElement 、またはJSXの< シンボルで作成される:
constApp=()=>{const[count,setCount]=useState(0);returnReact.createElement("main",null,React.createElement("div",null,React.createElement("h1",null,"Hello, world!"),React.createElement("span",null,"Count: ",count),React.createElement("button",{onClick:()=>setCount(count+1)},"Increment"))
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access