【发布时间】:2019-12-08 04:51:43
【问题描述】:
我有一个巨大的动态 HTML 字符串,我将其加载到 Vue 组件内的 div 中。 HTML 字符串本质上是来自所见即所得编辑器的内容。本来我只是用v-html来做这个的,没问题。
但是,现在有些情况下,我需要将部分 HTML 字符串替换为实际的 Vue 组件,而我不确定最好的方法。
例如,我可能在 HTML 字符串中有一些如下所示的标记:
||map:23||
而我想要做的是用如下的 Vue 组件替换它:
<map-component :id="23"></map-component>
我尝试在 Laravel 中提前进行字符串转换,然后在 Vue 组件中使用 v-html 来注入内容,但这似乎并没有加载 Vue 组件。
然后我尝试为 HTML 内容使用一个插槽,这确实有效,但它具有令人讨厌的副作用,即在 Vue 能够正确呈现之前在屏幕上显示一堆未格式化的 HTML 内容一两秒钟.
所以我的问题是:还有另一种(更优雅的)方法可以做到这一点吗?我在想,在 Vue 组件加载 HTML 内容后,我可以以某种方式在标记中找到 ||map:23|| 实例,然后用正确的 Vue 组件动态替换它们,但如果可能的话,我不会知识;我在 Vue 文档中找不到任何内容。
有人知道这是否可能吗?谢谢。
【问题讨论】:
标签: javascript html laravel vue.js vuejs2