多肢選択問題 1.仮想DOMに関する次の記述は正しいです:
- A. 仮想DOMを使用することで、手動でDOMを操作する必要がなくなり、アプリケーションのパフォーマンスが大幅に向上します。
- B. 仮想DOMを使用することで、手作業でDOMを操作する必要がなく、開発効率が大幅に向上します。
- C. 仮想 DOM はアプリケーションの状態を維持し、2 つの状態の違いを比較することで実 DOM を更新します。
- D. 仮想 DOM は基本的に JavaScript オブジェクトであり、サーバーレンダリングや Weex 開発など、クロスプラットフォームに対応できます。
2.Snabbdomライブラリに関する以下の記述は正しくありません:
- A. Snabbdomライブラリは、Vue.jsが借用している効率的な仮想DOMライブラリです。
- B. h()関数を使用して、実際のDOM構造を記述するVNodeオブジェクトを作成します。
- C. Snabbdom ライブラリ自体で、DOM プロパティ、イベント、スタイル、その他の操作を処理できます。
- D. patch(oldVnode, null)を使用してページ要素をクリアします。
記述問題 1. patchVnode 関数の実行プロセスを簡単に説明してください。
- hook.prepatchフック関数が定義されているかどうかを判断し、定義されている場合は、prepatchフック関数をトリガーします。
- 更新フックを繰り返し実行
- 新しいノードに、古いノードの text 属性と等しくない text 属性があるかどうかを判断します。
- 古いノードに子がある場合は、removeVnodes を呼び出して古いノードの子を削除します。
- setTextContent を使用して、新しいノードの textContent を設定します。
- 新旧両方のノードに子があるかどうかを判断します。
- 新旧ノードの子ノードが等しくない場合、updateChildrenを呼び出して子ノードを比較し、差分を更新します。
- そうでない場合、新しいノードだけが子を持つ場合
- 古いノードに text 属性があるかどうかを判断し、setTextContent を使用し、textContent をクリアします。
- addVnodes を使用して、すべての子ノードを追加します。
- そうでなければ、古いノードだけが子ノードを持っている場合、removeVnodes を使ってすべての子ノードを削除します。
- そうでない場合は、古いノードだけが text 属性を持っているので、setTextContent を使って textContent をクリアします。
- ポストパッチフック関数への最後の呼び出し