首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第 7 章 处理用户交互
7.1 事件的监听与处理
7.1.1 事件监听示例
7.1.2 多事件处理
7.1.3 事件修饰符
7.2 Vue中的事件类型
7.2.1 常用的事件类型
7.2.2 按键修饰符
7.3 实战一:随鼠标移动的小球
7.4 实战二:弹球游戏
第 8 章 组件基础
8.1 关于Vue应用与组件
8.1.1 Vue应用的数据配置选项
8.1.2 定义组件
8.2 组件中数据与事件的传递
8.2.1 为组件添加外部属性
8.2.2 处理组件事件
8.2.3 在组件上使用v-model指令
8.3 自定义组件的插槽
8.3.1 组件插槽的基本用法
8.3.2 多具名插槽的用法
8.4 动态组件的简单应用
8.5 实战:开发一款小巧的开关按钮组件
第 9 章 组件进阶
9.1 组件的生命周期与高级配置
9.1.1 生命周期方法
9.1.2 应用的全局配置选项
9.1.3 组件的注册方式
9.2 组件props属性的高级用法
9.2.1 对props属性进行验证
9.2.2 props的只读性质
9.2.3 组件数据注入
9.3 组件Mixin技术
9.3.1 使用Mixin来定义组件
9.3.2 Mixin选项的合并
9.3.3 进行全局Mixin
9.4 使用自定义指令
9.4.1 认识自定义指令
9.4.2 自定义指令的参数
9.5 组件的Teleport功能
第 10 章 Vue响应性编程
10.1 响应性编程原理与在Vue中的应用
10.1.1 手动追踪变量的变化
10.1.2 Vue中的响应性对象
10.1.3 独立的响应性值Ref的应用
10.2 响应式的计算与监听
10.2.1 关于计算变量
10.2.2 监听响应式变量
10.3 组合式API的应用
10.3.1 关于setup方法
10.3.2 在setup方法中定义生命周期行为
10.4 实战:支持搜索和筛选的用户列表示例
10.4.1 常规风格的示例工程开发
10.4.2 使用组合式API重构用户列表页面
当前位置:
首页>>
技术小册>>
TypeScript和Vue从入门到精通(三)
小册名称:TypeScript和Vue从入门到精通(三)
### 10.3.2 在`setup`方法中定义生命周期行为 在Vue 3中,`Composition API`的引入为开发者提供了一种更灵活、更模块化的方式来组织和复用组件逻辑。`setup`函数作为`Composition API`的核心入口点,不仅允许我们定义组件的响应式状态、计算属性和方法,还允许我们以一种全新的方式处理组件的生命周期行为。与Vue 2中的`beforeCreate`、`created`、`beforeMount`、`mounted`等生命周期钩子不同,Vue 3通过`onMounted`、`onUpdated`、`onUnmounted`等函数式API在`setup`方法中定义生命周期行为。 #### 10.3.2.1 生命周期行为的概念 在Vue组件中,生命周期行为指的是组件从创建到销毁的整个过程中,Vue框架自动调用的一系列钩子函数。这些钩子函数为开发者提供了在不同阶段执行代码的机会,比如数据初始化、DOM挂载、数据更新后的处理、组件销毁前的清理工作等。 在Vue 3的`Composition API`中,虽然`setup`函数替代了Vue 2中的`beforeCreate`和`created`生命周期钩子(因为`setup`函数在`beforeCreate`之后、`created`之前被调用),但它通过引入新的函数式API来支持其他生命周期行为。 #### 10.3.2.2 `setup`方法中的生命周期函数 Vue 3为`setup`方法提供了几个生命周期函数,允许你在组件的不同阶段执行逻辑: - **`onMounted(callback)`**:在组件挂载到DOM后调用。对应Vue 2的`mounted`钩子。 - **`onUpdated(callback)`**:在组件的响应式状态更新后调用,但发生在DOM更新之后。对应Vue 2的`updated`钩子。 - **`onUnmounted(callback)`**:在组件卸载时调用。对应Vue 2的`beforeDestroy`和`destroyed`钩子(Vue 3将两者合并为一个)。 - **`onActivated(callback)`**(仅用于`<keep-alive>`组件):当组件被`<keep-alive>`缓存的组件激活时调用。 - **`onDeactivated(callback)`**(仅用于`<keep-alive>`组件):当组件被`<keep-alive>`缓存的组件停用时调用。 - **`onErrorCaptured(callback)`**:捕获并处理子组件中发生的错误。 - **`onRenderTracked(callback)`** 和 **`onRenderTriggered(callback)`**:用于调试和性能追踪,分别跟踪响应式依赖的收集和触发。 #### 10.3.2.3 示例:使用`onMounted`和`onUnmounted` 让我们通过一个简单的例子来演示如何在`setup`方法中使用`onMounted`和`onUnmounted`生命周期函数。 ```vue <template> <div> <h1>{{ message }}</h1> </div> </template> <script lang="ts"> import { ref, onMounted, onUnmounted } from 'vue'; export default { name: 'LifecycleDemo', setup() { const message = ref('Hello, Vue 3 Composition API!'); // 组件挂载到DOM后执行 onMounted(() => { console.log('Component mounted!'); // 可以在这里执行DOM操作或发起数据请求 }); // 组件卸载时执行 onUnmounted(() => { console.log('Component unmounted!'); // 可以在这里执行清理工作,如取消定时器、移除事件监听器等 }); // 返回给模板使用的响应式引用 return { message, }; }, }; </script> ``` 在这个例子中,当组件被挂载到DOM后,控制台会输出“Component mounted!”,这表明`onMounted`中的回调函数被成功调用。同样地,当组件被卸载时,控制台会输出“Component unmounted!”,表明`onUnmounted`中的回调函数被执行。 #### 10.3.2.4 注意事项 - **异步操作**:在`onMounted`中执行异步操作(如API请求)是常见的做法,但要注意处理好异步操作的结果和可能的错误。 - **依赖追踪**:由于Vue 3的响应式系统基于Proxy,因此在`setup`方法中定义的响应式状态或计算属性将自动被Vue跟踪。然而,当在生命周期函数中访问外部响应式源时(如父组件传递的props),可能需要额外注意依赖的更新和清理。 - **性能优化**:合理使用生命周期函数可以帮助你优化组件的性能,比如只在需要时更新DOM或执行重计算。 - **代码组织**:随着组件逻辑的复杂化,考虑将相关的生命周期函数和响应式状态封装在自定义的`Composition API`函数中,以提高代码的可读性和可维护性。 #### 10.3.2.5 实战技巧 - **利用TypeScript**:在TypeScript项目中,可以利用TypeScript的类型系统来增强生命周期函数的类型安全性和可读性。 - **组合式API的复用**:可以将多个相关的响应式状态和生命周期函数封装成一个自定义的`Composition API`函数,然后在多个组件中复用。 - **调试和测试**:使用Vue Devtools等工具来调试和跟踪生命周期函数的执行,同时编写单元测试来验证生命周期函数中的逻辑。 #### 结论 Vue 3的`Composition API`通过引入`setup`方法和一系列生命周期函数,为开发者提供了一种更灵活、更强大的方式来组织和复用组件逻辑。通过合理使用这些生命周期函数,你可以更好地控制组件的生命周期行为,优化组件的性能,并编写出更加清晰、可维护的代码。随着Vue 3的普及,掌握`Composition API`及其生命周期函数的使用将成为Vue开发者必备的技能之一。
上一篇:
10.3.1 关于setup方法
下一篇:
10.4 实战:支持搜索和筛选的用户列表示例
该分类下的相关小册推荐:
vue项目构建基础入门与实战
Vue.js从入门到精通(二)
TypeScript和Vue从入门到精通(四)
Vue.js从入门到精通(四)
Vue.js从入门到精通(三)
Vue.js从入门到精通(一)
TypeScript和Vue从入门到精通(五)
移动端开发指南
VUE组件基础与实战
TypeScript和Vue从入门到精通(二)
TypeScript和Vue从入门到精通(一)
Vue原理与源码解析