设计

/

副本与深拷贝

最后更新时间:

2026/01/14

本教程将帮助你快速理解 副本(Duplicate)深拷贝(Deep Copy) 的区别,以及在什么场景下该使用哪一个。

如果你刚开始使用组件功能,强烈建议从本页开始阅读


一、什么是副本(Duplicate)?

副本(Duplicate),就是把当前组件「复制一份」出来。

⚠️ 注意:不同类型的组件,副本的表现是不同的。


1️⃣ 普通组件:复制后彼此独立

对于普通组件,副本是一个完全独立的新组件

  • 修改副本,不会影响原组件
  • 原组件和副本之间互不关联

示例:文本组件

  1. 页面中有一段文本 A:Hello world
  2. 将文本 A 复制一份,得到文本 B
  3. 把文本 B 修改为:你好世界

结果是:

  • 文本 A 仍然是 Hello world
  • 文本 B 显示为 你好世界

两者互不影响。

image.png


2️⃣ 自定义组件:复制的是「实例」

对于自定义组件,副本并不会创建新的组件母本,而只是多创建了一个实例

这意味着:

  • 所有副本实例,都指向同一个组件母本
  • 只要母本被修改,所有实例都会一起变化

示例:按钮组件

  1. 页面中已有按钮实例 A
  2. 复制按钮 A,得到按钮实例 B
  3. 此时 A 和 B 使用的是同一个按钮母本

image.png

接下来,我们进入按钮组件详情(母本),将背景色修改为红色。

image.png

你会看到:

  • 按钮 A 变成红色
  • 按钮 B 也同时变成红色

👉 这是正常现象,因为它们共享同一个母本。

image.png


二、什么是深拷贝(Deep Copy)?

当你希望:

  • 基于一个已有的自定义组件进行修改
  • 不想影响原来的组件和实例

这时,就需要使用 深拷贝(Deep Copy)


深拷贝怎么用?

  1. 选中一个自定义组件实例
  2. 鼠标右键
  3. 点击 深拷贝(Deep Copy)

    ℹ️ 提示:只有选中「自定义组件实例」时,才会看到该选项。

image.png


深拷贝做了什么?

深拷贝会自动完成两件事:

  1. 复制原组件的母本,生成一个新的母本 B
  2. 当前组件会切换为「母本 B 的实例」

最终效果是:

  • 原组件实例,继续使用原母本
  • 深拷贝出来的组件,拥有自己的独立母本

之后无论你如何修改,都不会相互影响


深拷贝示例(按钮)

  1. 对按钮实例 A 执行 深拷贝
  2. 得到按钮实例 B(使用母本 B)
  3. 进入按钮 B 的组件详情(母本 B)
  4. 将按钮背景色修改为绿色,如下图所示

image.png

此时页面效果为:

  • 按钮 A:保持原样(未变化)
  • 按钮 B:背景色变为绿色

image.png

说明两个按钮已经完全独立。


三、新手该怎么选?

可以按照下面的规则快速判断:

✅ 使用「副本(Duplicate)」当你:

  • 复制的是普通组件(文本、图片等)
  • 希望多个按钮 / 卡片样式始终保持一致

✅ 使用「深拷贝(Deep Copy)」当你:

  • 想在现有组件基础上做「改版」或「二次设计」
  • 希望新组件以后不再受原组件影响

小结

  • 副本(Duplicate)
    • 普通组件 → 完全独立
    • 自定义组件 → 共享同一个母本
  • 深拷贝(Deep Copy)
    • 创建一个全新的组件母本
    • 用于组件分支和个性化定制

掌握这两个概念,可以帮你避免「一改全改」的问题,也能更高效地复用组件。

继续阅读

下一篇