1

new Component({ target }) を呼び出すと、コンポーネントがターゲットに追加されます。ターゲットの古いコンテンツをすべて新しいコンポーネントに置き換えたいと思います。どうやってやるの?

4

3 に答える 3

0

私はこれと同じ問題を抱えていました.HTMLフォールバックを個別に作成していて、静的htmlを正確に反映するクライアント側のSvelteコンポーネントでdom全体を水和したかっただけです。ただし、ドキュメント<html>のメソッドを使用すると、ターゲットを置き換えるのではなく追加するため、2 つのネストされた要素が作成されました。

置き換えたい要素の「親」を取得すると、うまくいくように見えました。

import App from './App.svelte';

let target = document.querySelector('html').parentNode;

new App({
  target: target,
  hydrate: true
});

私の特定のケースでは、より簡単に次のように書くことができます:

import App from './App.svelte';

new App({
  target: document,
  hydrate: true
});

最上位の<html>要素を置き換えると、いくつかのコンソール エラーが発生しますが、役立つ場合に備えて、スクリーンショットとプロジェクトでの実装方法の詳細を以下に示します: https://github.com/plentico/plenti/issues/65#issuecomment -696391302

于 2020-09-22T19:20:11.747 に答える