1.仮想DOMとは何ですか?
彼は、JSオブジェクトであります
React.createElement(
'DIV'、
{クラス名: 'CN'}、
'コンテンツ1'、
'コンテンツ2'
);
コンパイルされたブラウザ:
{
タイプ:「DIV」
小道具:{
クラス名: 'CN'、
子供達: [
'コンテンツ1'、
'コンテンツ2'、
]
}
}。
種類や属性以外の属性を次のように加えて、もともと別のに渡され、変換され、子供の小道具の配列を渡すためにパッケージ化されます。配列やパラメータのリストとして子どもたちが渡されたかどうかは問題ではない - 仮想DOMを生成し、そして最終的に一緒にパッケージするとき。
同じクラスの同じインスタンス、または同じ関数に値型を比較するために使用===(三重等しい)ので、これら2つの値を反応させます。
これは、そのReactDom.renderとレンダリングのコンポーネント(クラスコンポーネントこの文があるのみ機能)ではない、同じ機能を注目に値します。
想像して、私たちは1000年の行から最初の行を削除しました。コントラスト指数によれば、その後、最初のコンテンツから出発して同じいないため、「更新」、残りの999のサブアイテムにあっ反応します。幸いなことに、組み込まれている反応する方法(ビルトイン)この問題を解決します。プロパティへの重要な要素の比較、限り、キーは一意であるとして、むしろ削除それらをより、要素を移動します反応し、その後、彼らはDOMツリーから彼に戻りました。(このプロセスは、で反応にマウントとマウント解除と呼ばれます)