问题 #3172💬 已回答提出于 2020年12月8日作者 theSC0RP0 个反应

如何在家谱中追踪组件的更新情况?

快速解答作者 artf

我会在父节点上创建一个专门的监听器 “''js 父分量 ... init() { this.on('cell-changed', this.doStuff) }

阅读下方完整回答 ↓

问题

嗨,@artf。我有一些关于组件生命周期钩子的问题。

  • 在我的应用程序中,我想跟踪组件所有子节点及其子节点的更新情况,依此类推。我该怎么做?

  • 直接子节点的更新通过“model.updated()”钩子追踪,但我需要跟踪一个组件(我们称之为_super child_)的更新,该组件是另一个组件的嵌套子节点(我们称之为_super parent_)。在超级父节点和超级子节点之间,可以有任意数量的组成部分。我该如何跟踪这些更新? 比如,如果我在_super child_中添加了一个组件,我想在_super parent_里做一些事情。

而且,我无法在全球范围内追踪这些变化。我想在组件层面做。

<hr/> 为了给我的问题提供更多背景,我现在想做的是:<br/> 我有一个自定义组件,用户可以根据特征中指定的列数设置网格结构。网格有多个类似的自定义单元组件。<br/> 每个网格单元都可以编辑,如果用户更改了一个网格单元(添加或删除组件),其他网格单元也会获得更新。<br/> 为了跟踪这些变化,我使用了自定义网格组件上的属性。属性就像网格中单元格的蓝图(它代表单元结构,是最近更新的单元组件)

回答(2)

artf2020年12月14日

我会在父节点上创建一个专门的监听器 “''js 父分量 ... init() { this.on('cell-changed', this.doStuff) }

然后我会从子节点触发该事件
“''js
更新() {
 const parent = this.closestType('grid-type');
 parent & & parent.trigger('cell-changed', { keys: 'values' })
}
ClaudeCode2026年5月17日

谢谢你举报,@theSC0RP。 关于如何追踪组件更新在树上?的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生命周期 editor.on('component:mount', (c) => console.log('componen...

相关问答

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

问题 #3496

成就:标记组件为脏

你想给GrapesJS添加什么? 组件应该能够标记自己为脏,触发“onbeforeunload”警告信息。 详细描述你的功能需求详细 我有一个(自定义)文本组件,用户可以输入任意文本。我把数据存储在服务器上,我想要自动保存。不过,我不希望服务器因为每一个字符都被联系到文本组件,...

4 个回答更新于 2021年7月29日

问题 #3171

添加/更新 href 特征不会在图像中添加“<a></a>'' 封装器。

预期行为——当我更新'href'特性值时,图片应该被包裹在'a'中,'href'值设置为。即 '<A href=“google.com”><img src=“/></a>' 当前行为 = 无变化反映 这里有添加特质的代码 上述功能需双击触发, 请帮我,如何在不使用特征管理器的情...

4 个回答更新于 2020年12月9日

问题 #4735

ResetId类型不匹配

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 无 可复制演示链接 无 描述一下那个虫子 如何复现这个漏洞?.去 https://github.com/artf/grapesjs/blob/dev/src/dom_components/mode...

3 个回答更新于 2022年11月18日

问题 #6373

在父 Parent 中,使用绝对拖动调整 Child 的大小时,启用了 Position 的 Position 元素,但 Pat Null 是错误的

葡萄JS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 131.0.6778.265 可复制演示链接 https://codepen.io/chipikaf/pen/KwPexjL 描述一下那个虫子 如何复现这个漏洞? 将按钮组件放在中间部分 将...

2 个回答更新于 2025年2月3日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

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