问题 #2703✓ 已解决提出于 2020年4月5日作者 adamwpe3 个反应

让整个画布都做成Vue / React元素

快速解答作者 adamwpe2

感谢@noogen详细的回复。 是的,我觉得你说得对,还是坚持用组件吧——我不太确定 ToHtml 是否适合我,因为我不想用标签管理两种系统,一种是在编辑器里正确 rending,另一种是在生产环境中。 所以,我现在加载了一个新脚本“widgets.js”,然后运行一个包含“vueloadcontact_form()”的函数,并设置了必需参数——这似乎运行得相当不错:) 现在我需要想办法在“加载”页面事件中完成所有脚本,这样页面渲染速度不会太慢。 再次感谢你的解决方案。

阅读下方完整回答 ↓

问题

大家好,

更一般的问题是,有没有人成功把整个画布(或者实际上是包装器)做成Vue元素,也就是说你可以拖动一些自定义div,比如<timer></timer>“',它就能正确渲染?

我尝试过,我把包装器设为 vue 元素(el),它在“导入”HTML代码时确实有效,但它阻止了拖放系统,我猜是因为现在它变成了虚拟 DOM。

我确实看到了这篇帖子: https://github.com/artf/grapesjs/issues/275

但它选择了组件路线,即向 DomComponents 添加脚本。

有人做到过吗?或者甚至用React或类似软件?还是我们最好还是坚持用自定义组件和自定义脚本?

回答(2)

👍 最有帮助adamwpe2020年4月7日

感谢@noogen详细的回复。 是的,我觉得你说得对,还是坚持用组件吧——我不太确定 ToHtml 是否适合我,因为我不想用标签管理两种系统,一种是在编辑器里正确 rending,另一种是在生产环境中。 所以,我现在加载了一个新脚本“widgets.js”,然后运行一个包含“vueloadcontact_form()”的函数,并设置了必需参数——这似乎运行得相当不错:) 现在我需要想办法在“加载”页面事件中完成所有脚本,这样页面渲染速度不会太慢。 再次感谢你的解决方案。

noogen2020年4月5日

我的答案是最好坚持使用自定义脚本。 我用这里的lodash模板做过自定义组件:https://github.com/niiknow/grapesjs-components-farmer/blob/master/src/index.js#L2。 “toHtml”方法需要字符串——https://github.com/niiknow/grapesjs-components-farmer/blob/master/src/traits.js#L126——所以你无法使用虚拟主导。 'toHtml' 方法用于生成编辑器中显示的 HTML,以及调用 'editor.genHtml()' 方法时得到的内容。...

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

浏览插件分类

直接跳转到市场上的插件分类页面。