【发布时间】:2020-06-08 14:00:17
【问题描述】:
我从无头 CMS 接收原始 html sn-ps,我需要在 Sapper 应用程序中按原样呈现。
这也包括我收到一个开始标签和相应的结束标签作为两段 HTML 的情况,我在这两条 HTML 之间添加了一个 Svelte 组件。
<script>
import MyComponent from './MyComponent.svelte'
// example snippets coming from headless CMS
const prefix = '<p class="test">'
const suffix = '</p>'
</script>
<!-- use snippets as-is -->
{@html prefix}
<MyComponent />
{@html suffix}
见https://svelte.dev/repl/4c1bf80ae00e476587344b6065e7346e?version=3.19.1
但是,Svelte 期望使用 @html 呈现的每个项目都是自包含元素,并尝试“修复”常见错误。例如,它会在 prefix-sn-p 中添加一个结束标签,将<MyComponent/>-part 移出p。
有没有办法在一般情况下规避这种行为?或者更具体地说 - 是否可以用任意原始 HTML 包围渲染的组件?
作为一个侧节点:它作为一个 sapper 应用程序运行,并且页面的服务器端渲染版本确实正确地发出了原始 HTML。当客户端渲染开始时,行为会发生变化。
【问题讨论】:
标签: javascript svelte sapper