首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Vue中显示DocumentFragment

在Vue中显示DocumentFragment
EN

Stack Overflow用户
提问于 2019-11-01 19:01:19
回答 1查看 1.3K关注 0票数 2

我使用的是一个库(prosemirror),它给我从数据库中获得的json的DocumentFragment。现在我想在我的组件中显示它。多么?两个小时的谷歌没给我任何帮助。

代码语言:javascript
复制
  resolveContent: function () {
    let contentNode = schema.nodeFromJSON(content)
    let fragment = DOMSerializer.fromSchema(schema).serializeFragment(contentNode.content)
    return fragment
  }

在我的组件中使用这个

代码语言:javascript
复制
  p(v-html="resolveContent()")

代码语言:javascript
复制
  p {{resolveContent()}}

打印

代码语言:javascript
复制
  [object DocumentFragment]
EN

回答 1

Stack Overflow用户

发布于 2020-07-13 16:38:21

要在DocumentFragment中处理Vue.js,您需要等待Vue的mounted钩子触发。我将创建一个包装器组件,它只是一个空的<div/>。然后,连接到mounted并使用标准DOM命令插入片段(例如。Node.appendChild())

代码语言:javascript
复制
const FragmentBootstrapper = Vue.extend({
  mounted() {
    const fragment = resolveContent()

    this.$el.appendChild(fragment)
  },
  render(h) {
    return h("div") // becomes `this.$el`
  }
}

这在一开始可能感觉很奇怪,但当您考虑到Vue正在呈现层抽象时,这才是最有意义的。因此,在自己的呈现钩子中,它希望只处理自己的VDOM。它提供mounted钩子以支持各种用例,即这个用例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58664509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档