From a50c8f9a0c1de013e360b4abb40b6b7debb172e3 Mon Sep 17 00:00:00 2001 From: tabidachinokaze Date: Sat, 6 Aug 2022 22:04:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BF=BB=E8=AF=91=20get-started/=5Fcommon/comp?= =?UTF-8?q?onents/=5Forganizing=5Flifecycle.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/_organizing_lifecycle.md | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/get-started/_common/components/_organizing_lifecycle.md b/get-started/_common/components/_organizing_lifecycle.md index 7ae52f80..a797afff 100644 --- a/get-started/_common/components/_organizing_lifecycle.md +++ b/get-started/_common/components/_organizing_lifecycle.md @@ -1,37 +1,65 @@ -## Component lifecycle + +## 组件生命周期 + +在组件拓扑中添加和移除组件实例时,会创建和销毁组件实例。这可以通过以下两种方式之一发生: + +* **静态地**:该实例在组件清单中被声明为树中另一个组件的子组件。静态组件仅当一个更新更改组件拓扑时才会创建和销毁。 + +* **动态地**:实例在运行时使用 `fuchsia.component.Realm` 协议在组件 `collection` 中添加或移除。动态组件在系统关闭时销毁。 + +一旦组件被销毁,框架就会移除它的持久状态(比如本地存储)。 + +框架会启动一个组件实例当另一个组件尝试打开一个通道到该组件实例时——这称为**绑定**。当连接到一个由组件公开的能力时,绑定会**隐式**发生。绑定到已经启动的组件会连接到当前运行的实例。 + + + +组件可能会通过退出程序(由组件的 `runner` 定义)自行停止,或者框架可能会在系统关闭时停止组件。在被销毁之前,框架将组件移动到**关闭**状态以指示它不能再次启动。 + +![该图显示了组件如何具有两种不同的状态:实例和执行。这些状态描述了“组件生命周期”。](/get-started/images/components/component-lifecycle.png){: width="662"} + +注意:要获取关于组件状态和执行的更多详细信息,请参阅[组件生命周期](/concepts/components/v2/lifecycle.md)。