// vue3 生命周期函数
(1) onBeforeMount 在挂载开始之前被调用
(2) onMounted 组件挂载时调用
(3) onBeforeUpdate 数据更新时调用
(4) onUpdate 数据更改导致的虚拟 DOM 重新渲染, 在这之后会调用该钩子
(5) onBeforeUnmount 在卸载组件实例之前调用
(6) onUnmounted 卸载组件实例后调用
(7) onErrorCaptured 到捕获一个来自子孙组件的错误时被调用
注意: 生命周期函数在使用之前, 都要被引用
// vue 应用程序中有4个主要事件
(1) 创建 --- 在组件创建时执行
(2) 挂载 --- DOM 被挂载时执行
(3) 更新 --- 当响应数据被修改时执行
(4) 销毁 --- 在元素被销毁之前立即执行
// vue3 的抽离封装
vue3 中的任何一个组合式 api 都可以单独抽离出去在另一个文件, 最后只需要回归到 setup() 中即可