在 React 中,生命周期钩子是组件在其生命周期中的不同阶段所触发的函数。在 React 16.3 之前,常用的生命周期钩子有:
componentWillMount: 组件挂载前触发componentDidMount: 组件挂载后触发componentWillReceiveProps: 组件接收新的 props 时触发shouldComponentUpdate: 组件是否需要更新时触发componentWillUpdate: 组件更新前触发componentDidUpdate: 组件更新后触发componentWillUnmount: 组件卸载前触发
从 React 16.3 开始,引入了新的生命周期钩子,并逐渐废弃了一些旧的钩子:
getDerivedStateFromProps: 用于替换componentWillReceiveProps,在组件接收新的 props 或 state 变化时触发getSnapshotBeforeUpdate: 在组件更新前获取一个值,该值会作为参数传递给componentDidUpdatecomponentDidCatch: 用于捕获组件内部的错误
此外,React Hooks 提供了一些与生命周期钩子相关的函数:
useState: 用于在函数组件中使用 stateuseEffect: 用于在函数组件中处理副作用,可以看作是componentDidMount、componentDidUpdate和componentWillUnmount的结合useContext: 用于在函数组件中使用 contextuseReducer: 用于在函数组件中使用类似于 Redux 的状态管理useCallback: 用于在函数组件中缓存函数useMemo: 用于在函数组件中缓存计算结果useRef: 用于在函数组件中创建和访问 refsuseImperativeHandle: 用于在函数组件中自定义暴露给父组件的实例值useLayoutEffect: 类似于useEffect,但它会在 DOM 更新后同步执行副作用函数useDebugValue: 用于在 React 开发者工具中显示自定义 hook 的标签
在 Kumi API 中,微应用的生命周期钩子包括:
onLaunch: 微应用初始化时触发onLoad: 微应用挂载前触发onReady: 微应用挂载完成时触发onUnload: 微应用卸载前触发onShow: 微应用展示时触发(在基座中为多页签切换时,独立运行时为浏览器标签切换时)onHide: 微应用隐藏时触发(在基座中为多页签切换时,独立运行时为浏览器标签切换时)
这些生命周期函数需要在 src/app.ts 中声明。