Svelte 如何替换目标的内容,而不是附加到子对象?
调用新组件{target}将组件追加到目标,我想用新组件替换目标的所有旧内容。我如何才能做到这一点?如果要对服务器呈现的标记进行水合处理,最好使用水合:true选项 若目标先前被一个轻巧的组件占据,那个么最好调用该组件的$destroy方法 否则,最简单的方法就是清空目标元素: target.innerHTML=; 新组件{target};Svelte 如何替换目标的内容,而不是附加到子对象?,svelte,svelte-3,svelte-component,Svelte,Svelte 3,Svelte Component,调用新组件{target}将组件追加到目标,我想用新组件替换目标的所有旧内容。我如何才能做到这一点?如果要对服务器呈现的标记进行水合处理,最好使用水合:true选项 若目标先前被一个轻巧的组件占据,那个么最好调用该组件的$destroy方法 否则,最简单的方法就是清空目标元素: target.innerHTML=; 新组件{target}; 如果要水合服务器呈现的标记,最好使用水合:true选项 若目标先前被一个轻巧的组件占据,那个么最好调用该组件的$destroy方法 否则,最简单的方法就是清
如果要水合服务器呈现的标记,最好使用水合:true选项 若目标先前被一个轻巧的组件占据,那个么最好调用该组件的$destroy方法 否则,最简单的方法就是清空目标元素: target.innerHTML=; 新组件{target};
我也遇到了同样的问题,我分别创建了HTML回退,只是想用客户端的轻巧组件来补充整个dom,这些组件完全反映了静态HTML。但是,使用的方法是创建两个嵌套元素,因为它附加到目标而不是替换它 抓取要替换的元素的父元素似乎对我有用: 从“/App.svelte”导入应用程序; 让target=document.querySelector'html'.parentNode; 新应用程序{ 目标:目标,, 是的 }; 在我的具体案例中,可以更简单地写为: 从“/App.svelte”导入应用程序; 新应用程序{ 目标:文件, 是的 };
替换顶层元素会导致一些控制台错误,但以下是屏幕截图和更多关于如何在项目中实现它的详细信息,以防有用:我也遇到了同样的问题,我单独创建了HTML回退,只是想用完全反映静态HTML的客户端轻巧组件来补充整个dom。但是,使用的方法是创建两个嵌套元素,因为它附加到目标而不是替换它 抓取要替换的元素的父元素似乎对我有用: 从“/App.svelte”导入应用程序; 让target=document.querySelector'html'.parentNode; 新应用程序{ 目标:目标,, 是的 }; 在我的具体案例中,可以更简单地写为: 从“/App.svelte”导入应用程序; 新应用程序{ 目标:文件, 是的 }; 替换顶层元素会导致一些控制台错误,但以下是屏幕截图和更多详细信息,说明我们如何在项目中实现它,以防有所帮助: 这将在目标的父元素中的目标元素之前预先添加新组件,然后删除目标 关于锚的相关文件: 使用target==可能不是一个好主意 这将在目标的父元素中的目标元素之前预先添加新组件,然后删除目标 关于锚的相关文件:
使用target==可能不是一个好主意。您是在谈论路由吗?如果是,试试这个:你是在谈论路由吗?如果是,请尝试以下操作:如何保留上一个目标的属性?例如名称、id、类等。如何保留前一个目标的属性?例如名称、id、类等。
function replaceTarget (target) {
const component = new MySvelteComponent({
target: target.parentElement,
anchor: target,
});
target.remove();
}