小程序开发第四弹: uni-app 必备知识 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

小程序开发第四弹: uni-app 必备知识

发表时间:2021-1-5

发布人:葵宇科技

浏览次数:50

生命周期

在了解组件之前 , 先来看下生命周期, 学过 vue 或者 react 同学肯定不会陌生这个概念, 简单概括就是小程序从创建到销毁的阶段所经历的钩子函数 ;

小程序的生命周期分为三种 , 应用生命周期 页面生命周期 组件生命周期

复杂的咱先不说 , 遇到情况直接翻文档 ; 说说简单的先

应用生命周期

值得注意的是应用的生命周期只在App.vue 中能够有效使用 ; 其他页面无效

<script>
export default {
 name: 'App',
 onLaunch() { // 全局只会触发一次
  console.log('App - 初始化完成时调用');
 },
 onShow() {
  console.log('App - 页面启动时, 或者应用后台进入前台时调用')
 },
 onHide() {
  console.log('App - 页面从前台进入后台时调用')
 }
}
</script>
复制代码

可以看出触发了 onLaunch onShow 但是没有触发 onHide 大家可以根据图中标注的红色位置, 手动触发 onHide 钩子 ;

页面生命周期

对应你工程下的 pages 中的每一个页面的钩子, 这个钩子还是比较多的, 暂时也只看几个常用的, 个人认为学习先入门, 做项目的时候再抠抠细节 , 毕竟不可能一个演示功能把所有的细节都带上 ;

  • onLoad : 监听页面加载 ; 可以传递参数 , 参数是上个页面传递的参数
  • onShow : 监听页面显示 , 页面每次出现在屏幕时都会触发
  • onReady : 监听页面初次渲染完成
  • onHide : 页面隐藏监听
  • onUnload : 页面监听卸载

这次的示例代码有些许不同 , 首先当页面首次加载的时候, 页面的生命周期肯定是和我的书写顺序是一致的 , 但是他们要销毁或者切换页面时呢 ? 这里我大致测试了三种情况

  • 切后台
    • 切入时 先调用page的 onHide 在调用 app 的 onHide
    • 切出时 先调用 app 的 onShow 在调用 page 的 onShow
  • 有缓存跳转 navigator
    • 跳转时进入 onHide
    • 回退到当前页面 onShow
  • 没有缓存跳转 redirect
    • 跳转时 onUnload
    • 再次进入时, onLoad onShow onReady
<template>
 <view>
  <button type="default" @click="clickHandle">navigatorTo</button>
  <button type="primary" @click="clickHandle1">redirectTo</button>
 </view>
</template>

<script>
 export default {
  onLoad() {
   console.log('page - 页面加载');
  },
  onShow() {
   console.log('page - 页面显示');
  },
  onReady() {
   console.log('page - 页面初次渲染完成');
  },
  onHide() {
   console.log('page - 页面隐藏');
  },
  onUnload() {
   console.log('page - 页面卸载');
  },
  methods: {
   clickHandle() {
    uni.navigateTo({
     url: './new_file'
    })
   },
   clickHandle1() {
    uni.redirectTo({
     url: './new_file'
    })
   }
  }
 }
</script>
复制代码

组件生命周期

这个就不上代码示例了 , 组件的生命周期与Vue 的生命周期是一模一样的, 大家可以自行脑补下 ;

值得注意的店是 切后台操作和navigateor 操作都不会调用组件的销毁 , 当使用 redirect 的时候会调用组件销毁阶段的两个钩子 , 下次进入时继续重新渲染 ;

组件

在我个人的理解中 , uni-app 的组件可以理解成是带有功能的 HTML , 虽然标签都不一样, 但是具体使用方式都是差不多的 ; 大家可以去挨个去看看原生自带的即可, 不建议大家去看扩展组件 ; 感觉有点零散更像是 野战军的感觉