Skip to content

修改实例(实例覆盖)

把组件用到设计稿上之后,怎么改它的内容?哪些改动会被保留?哪些会被主组件的更新覆盖?本文带你搞清楚这件事。

直接修改实例

把一个组件拖到画布上之后,你得到的是这个组件的实例。如果想让它的文字、颜色、图标和默认的不一样,你不需要做任何特殊操作——直接选中实例里的图层修改就好。

比如你有一个按钮组件,默认显示"确定"。你想把它放到登录页上显示"登录"——直接双击文字改成"登录",就完成了。

这种"在实例上做的修改",我们称之为覆盖

覆盖之后会发生什么

被覆盖的属性,会保留你的修改,不再和主组件同步。没被覆盖的属性,会继续跟随主组件更新。

举个例子:你的按钮组件原来是蓝色背景、文字"确定"。你在某个实例上把文字改成了"登录",但没改颜色。后来组件作者把按钮组件的背景色从蓝色改成了绿色——你这个实例会变成什么样?

  • 文字仍然是 "登录"(你做了覆盖,保持你的修改)
  • 背景变成 绿色(你没改过,跟随主组件更新)

这正是组件的好处:你可以放心地复用,关键样式始终保持一致;同时也能根据具体场景做局部调整。

哪些东西可以改

在实例上,你可以自由修改:

  • 文字内容、字体样式
  • 填充颜色、描边
  • 阴影、模糊等效果
  • 图层的显示和隐藏
  • 嵌套在实例里的子组件,可以切换为别的组件
  • 导出设置

简单说,外观相关的属性都可以改

哪些东西改不了

为了保持组件结构不被破坏,下面这些事在实例内部做不到:

  • 添加新图层到实例里
  • 删除实例里的某个图层
  • 改变实例内子图层的大小、位置、旋转角度

如果你确实需要做这些操作,有两个办法:

  1. 回到主组件去改——所有用到这个组件的实例都会跟着变
  2. 解绑实例——把实例变回普通容器,但就和主组件断开关系了

撤销覆盖(重置)

改完之后觉得还是原样好?想恢复到主组件的样子?用"重置"功能。

重置实例 (1).png

怎么操作

  1. 选中实例
  2. 右侧面板实例区域,点更多操作(···
  3. 选择“重置所有”

重置只会恢复当前实例的覆盖,不会去碰它内部的嵌套实例。换句话说,重置的范围是"当前选中的这个实例和它的主组件之间的差异",不会层层往下穿透。

把实例切换成另一个组件,修改还会保留吗

很多时候你会遇到这种情况:用了 Icon A 组件,做了一些修改(比如改了颜色),后来发现 Icon B 更合适。如果切换之后修改全没了,就要重新改一遍——很烦。

Ardot 在这里帮你做了一些事:切换实例时,能继承的修改会自动带到新组件上。

什么时候能继承

继承靠的是"图层名 + 图层类型"的匹配。如果旧组件里有一个叫"icon"的形状被你改了颜色,新组件里也有一个叫"icon"的形状,那这个颜色修改就会被继承过去。

具体来说:

  1. 实例自身的覆盖(比如实例的可见性、整体尺寸)会直接保留
  2. 如果两个组件都只有一个文本图层,你改的文字会被自动带过去(不需要图层名一致)
  3. 其他图层按"同名 + 同类型"匹配——比如"icon"配"icon",但如果一个是文本一个是形状,就不会继承

类型不能跨:文本、嵌套实例、其他图层(容器、形状等)这三类之间互不继承。

嵌套实例还要看层级:实例里的实例,必须层级位置和名字都一样才能继承覆盖。

切换之后又切换回来呢

放心。如果你从组件 A 切到组件 B,再切回组件 A,之前在 A 上做的修改会自动恢复——Ardot 会帮你记住。

一个小细节:什么算"覆盖"

判断一个属性算不算覆盖,看的是这个实例和它直接对应的主组件有没有差异。

听起来像废话,但有一个容易混淆的点:

假设你做了一个按钮组件,里面嵌套了一个图标实例。在做按钮组件的时候,你把这个图标的颜色改成了绿色(这一步是在按钮组件内部完成的)。

后来别人用这个按钮组件,看到图标是绿色——这不是覆盖,因为按钮组件定义的就是绿色。

只有当别人在按钮的实例上再次改这个图标的颜色(比如改成红色),红色才算这个按钮实例的覆盖。

简单说:覆盖只看你和你的主组件之间的差异,不会再往里追溯。