生命周期
Garfish 应用的生命周期可以归结为:加载、渲染、销毁 三个阶段,因此 Garfish 应用的生命周期也是围绕着这三个阶段而展开的。应用的加载主要是通过 Garfish.loadApp,通过 loadApp API 会自动创建应用的实例,可以通过应用实例上的 mount 和 show 方法对应用进行渲染,通过 unmount 和 hide 方法对应用进行销毁,用户在实际使用的过程中通过 Garfish.run会发现当路由发生变化时符合加载条件的应用会自动加载渲染,实际上是 Garfish Router Plugin 通过监听路由变化来触发 loadApp 和 mount 自动完成应用的加载、渲染、销毁。

mount
app.mount 做了哪些事情
- 创建
app容器并添加到文档流上 - 编译子应用的代码
- 拿到子应用的
provider - 调用
app.options.beforeMount钩子 - 调用
provider.render - 将
app.display和app.mounted设置为true - 将
appset 到Garfish.activeApps中 - 调用
app.options.afterMount钩子 - 如果渲染失败,
app.mount会返回false,否则渲染成功会返回true,你可以根据返回值做对应的处理。
unmount
app.unmount 做了哪些事件
- 调用
app.options.beforeUnmount钩子 - 调用
provider.destroy - 清除编译的副作用
- 将
app的容器从文档流上移除 - 将
app.display和app.mounted设置为false - 在
Garfish.activeApps中移除当前的app实例 - 调用
app.options.afterUnmount钩子 - 同上,可以根据返回值来判断是否卸载成功。
show
app.show 做了哪些事件
- 将
app的容器添加到文档流上 - 调用
provider.render - 将
app.display设置为true - 同上,可以根据返回值来判断是否渲染成功。
hide
app.hide 做了哪些事件
- 调用
provider.destroy - 将
app的容器从文档流上移除 - 将
app.display设置为false - 同上,可以根据返回值来判断是否隐藏成功。