问题 #5990💬 已回答提出于 2024年7月4日作者 ihatov081 个反应

当你删除组件时,组件间的重复类也会被删除。

快速解答作者 artf1

你应该避免把共享样式放在组件相关的样式里。 请查看关于如何预防这种情况的讨论:https://github.com/GrapesJS/grapesjs/discussions/5968

阅读下方完整回答 ↓

问题

葡萄JS版本

  • 我确认使用最新版本的GrapesJS

你用的是什么浏览器?

Chrome 126.0.6478.127(Windows)

可复制演示链接

https://jsfiddle.net/t06s4oLb/8/

描述一下那个虫子

如何复现这个漏洞?

  1. 将第1节添加到画布上
  2. 在第1节下将第2节添加到画布中
  3. 将画布上的第2节移除。
  4. 第一节的风格将被打破。

https://github.com/GrapesJS/grapesjs/assets/14024165/097dbe62-d8d3-4270-930d-5668ef10c2df

预期的行为是什么?

我希望即使不同组件有相同的类,它也不会被删除。

目前的行为是什么? 原因是第一节和第二节都有.flex类,如果你从Canvas中删除了第2节,gjs-css-rules中的.flex css也会被删除。

行为准则

  • 我同意遵守本项目的行为准则

回答(4)

ihatov082024年7月4日

作为临时变通,每个组件的样式前缀都带有 id。 “''js 从 './data/hero-1' 导入 { HTML 作为 hero1html,css 作为 hero1css }; 从 './data/content-1' 导入 { html 作为 content1html,css 作为 content1css }; 连续来源 = [ { 编号:“英雄-1”, 名字:“英雄1号”, 分类:“英雄”, HTML:hero1html, CSS:hero1css, 类别:“BG-Gray-100 P-5”, }, { 编号:“内容-1”, 名称:“内容1”, 分类:“内容”, HTML:内容1htm...

ihatov082024年7月5日

@artf 谢谢你的回复。 我想确认一下#5968

ClaudeCode2026年5月17日

谢谢你举报,@ihatov08。 关于删除组件时,组件间的重复类也会被删除,这个问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生命周期 editor.on('component:mount', (c) =>...

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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