经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
【UniApp】-uni-app-CompositionAPI应用生命周期和页面生命周期
来源:cnblogs  作者:BNTang  时间:2023/12/11 10:22:57  对本文有异议

前言

  • 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-OptionAPI应用生命周期和页面生命周期
  • 那么了解完了uni-app-OptionAPI应用生命周期和页面生命周期之后,这篇文章来给大家介绍一下 uni-app-CompositionAPI应用生命周期和页面生命周期
  • CompositionAPI 是 Vue3.0 中的一个新特性,uni-app 也支持 CompositionAPI,所以我们就来看一下 uni-app-CompositionAPI应用生命周期和页面生命周期的写法
  • 首先不管三七二十一,先来新建一个项目

搭建演示环境

创建一个全新的项目:

然后在配置一下,微信小程序的 AppId,直接去之前的项目中拷贝一下即可,找到之前项目的 manifest.json 文件,然后选择微信小程序配置,复制一下即可。

  • 经过如上的这么一顿操作之后,就可以搭建完毕运行环境,与编码环境
  • 接下来就可以开始进行介绍 uni-app-CompositionAPI应用生命周期和页面生命周期内容了

步入正题

应用生命周期

如果想使用 CompositionAPI 的话,需要在 script 标签中添加 setup, 添加了 setup 之后就不是导出一个默认对象了,而是导出一个函数,将原来 App.vue 中的内容全部转换为函数定义,代码如下所示:

  1. <script setup>
  2. onLaunch(() => {
  3. console.log('App Launch')
  4. })
  5. onShow(() => {
  6. console.log('App onShow')
  7. })
  8. onHide(() => {
  9. console.log('App onHide')
  10. })
  11. </script>

改造完毕之后,我们就可以运行一下,看一下效果了,运行之后,可以看到控制台中报错了(我这里声明一下后面的启动都以微信小程序启动),如下图所示:

报错信息是 ReferenceError: onLaunch is not defined, 也就是说 onLaunch 这个函数没有定义,因为我们使用的是 CompositionAPI,那么我们就需要在 setup 函数中导入 onLaunch 函数,onLaunch 从哪里导入呢?从 @dcloudio/uni-app 中导入,当然如果说 onLaunch 需要导入那么其他的生命周期函数也需要导入,所以我们直接将所有的生命周期函数都导入进来,代码如下所示:

  1. <script setup>
  2. import {onLaunch, onShow, onHide} from '@dcloudio/uni-app'
  3. onLaunch(() => {
  4. console.log('App Launch')
  5. })
  6. onShow(() => {
  7. console.log('App onShow')
  8. })
  9. onHide(() => {
  10. console.log('App onHide')
  11. })
  12. </script>
  13. <style>
  14. </style>

然后运行一下,可以看到控制台中打印出来了我们的生命周期函数,如下图所示:

这个就是在 UniApp 中 CompositionAPI 的写法。

页面生命周期

页面生命周期的写法和应用生命周期的写法是一样的,只不过是在页面中使用,我们快速搭建一下环境吧,配置一下 tabBar:

  1. "tabBar": {
  2. "color": "#7A7E83",
  3. "selectedColor": "#3cc51f",
  4. "borderStyle": "black",
  5. "backgroundColor": "#ffffff",
  6. "list": [{
  7. "pagePath": "pages/index/index",
  8. "text": "首页"
  9. }, {
  10. "pagePath": "pages/account/account",
  11. "text": "账号"
  12. }]
  13. }

然后在 pages 目录下新建一个 account 目录,然后在 account 目录下新建一个 account.vue 文件,然后在 account.vue 文件中添加如下代码:

  1. <template>
  2. <view>
  3. <text>账号</text>
  4. </view>
  5. </template>
  6. <script setup>
  7. import {onLoad, onShow, onReady, onHide, onPullDownRefresh, onReachBottom} from '@dcloudio/uni-app'
  8. onLoad(() => {
  9. console.log("账号 onLoad");
  10. })
  11. onShow(() => {
  12. console.log("账号 onShow");
  13. })
  14. onReady(() => {
  15. console.log("账号 onReady");
  16. })
  17. onHide(() => {
  18. console.log("账号 onHide");
  19. })
  20. onPullDownRefresh(() => {
  21. console.log("账号 onPullDownRefresh");
  22. })
  23. onReachBottom(() => {
  24. console.log("账号 onReachBottom");
  25. })
  26. </script>
  27. <style>
  28. </style>

index.vue 文件中添加如下代码:

  1. <template>
  2. <view>
  3. <text>首页</text>
  4. <view class="content">
  5. <view class="item">item 1</view>
  6. <view class="item">item 1</view>
  7. <view class="item">item 1</view>
  8. <view class="item">item 1</view>
  9. <view class="item">item 1</view>
  10. <view class="item">item 1</view>
  11. <view class="item">item 1</view>
  12. <view class="item">item 1</view>
  13. <view class="item">item 1</view>
  14. <view class="item">item 1</view>
  15. <view class="item">item 1</view>
  16. <view class="item">item 1</view>
  17. <view class="item">item 1</view>
  18. <view class="item">item 1</view>
  19. <view class="item">item 1</view>
  20. <view class="item">item 1</view>
  21. <view class="item">item 1</view>
  22. <view class="item">item 1</view>
  23. <view class="item">item 88</view>
  24. <view class="item">item 99</view>
  25. </view>
  26. </view>
  27. </template>
  28. <script setup>
  29. import {onLoad, onShow, onReady, onHide, onPullDownRefresh, onReachBottom} from '@dcloudio/uni-app'
  30. onLoad(() => {
  31. console.log("首页 onLoad");
  32. })
  33. onShow(() => {
  34. console.log("首页 onShow");
  35. })
  36. onReady(() => {
  37. console.log("首页 onReady");
  38. })
  39. onHide(() => {
  40. console.log("首页 onHide");
  41. })
  42. onPullDownRefresh(() => {
  43. console.log("首页 onPullDownRefresh");
  44. })
  45. onReachBottom(() => {
  46. console.log("首页 onReachBottom");
  47. })
  48. </script>
  49. <style lang="scss" scoped>
  50. .item {
  51. width: 100%;
  52. height: 200rpx;
  53. }
  54. </style>

配置 pages.json 文件中 pages 相关内容:

  1. "pages": [
  2. {
  3. "path": "pages/index/index",
  4. "style": {
  5. "navigationBarTitleText": "首页",
  6. "enablePullDownRefresh" : true
  7. }
  8. },
  9. {
  10. "path" : "pages/account/account",
  11. "style" :
  12. {
  13. "navigationBarTitleText" : "账号"
  14. }
  15. }
  16. ],

然后运行一下,我这里以一个视频的形式展示给大家,如下图所示:

总结

好,经过上面的介绍,我们就了解了 uni-app-CompositionAPI应用生命周期和页面生命周期的写法

最主要是就是要知道在使用 CompositionAPI 的时候,需要在 script 标签中添加 setup,然后在 setup 函数中导入生命周期函数,然后在生命周期函数中添加我们的代码即可。

要知道导入生命周期函数的时候,需要从 @dcloudio/uni-app 中导入,然后在 setup 函数中使用即可。

最后

大家好我是 BNTang, 一个热爱分享的技术的开发者,如果大家觉得我的文章对你有帮助的话,可以关注我的公众号 JavaBoyL,我会在公众号中分享一些IT技术和一些个人的见解,谢谢大家的支持。

原文链接:https://www.cnblogs.com/BNTang/p/17893558.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号