# uniapp应用生命周期
- onLaunch 当uni-app 初始化完成时触发(全局只触发一次)
- onShow 当 uni-app 启动,或从后台进入前台显示(显示页面的时候触发)
- onHide 当 uni-app 从前台进入后台(隐藏/退出页面的时候触发)
- onError 当 uni-app 报错时触发
- onUniNViewMessage 对 nvue 页面发送的数据进行监听
- onUnhandledRejection 对未处理的 Promise 拒绝事件监听函数
- onPageNotFound 页面不存在监听函数
- onThemeChange 监听系统主题变化
# uniapp页面生命周期
- onInit 监听页面初始化,其参数同 onLoad 参数,触发时机早于 onLoad
- onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参)
- onShow 监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回当前页面
- onReady 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
- onHide 监听页面隐藏
- onUnload 监听页面卸载
- onResize 监听窗口尺寸变化
- onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新
- onReachBottom 页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据
- onTabItemTap 点击 tab 时触发,参数为Object
- onShareAppMessage 用户点击右上角分享
- onPageScroll 监听页面滚动,参数为Object
- onNavigationBarButtonTap 监听原生标题栏按钮点击事件,参数为Object
- onBackPress 监听页面返回
- onNavigationBarSearchInputChanged 监听原生标题栏搜索输入框输入内容变化事件
- onNavigationBarSearchInputConfirmed 监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发
- onNavigationBarSearchInputClicked 监听原生标题栏搜索输入框点击事件(pages.json 中的 searchInput 配置 disabled 为 true 时才会触发)
- onShareTimeline 监听用户点击右上角转发到朋友圈
- onAddToFavorites 监听用户点击右上角收藏
# uniapp优缺点
- 优点:
- a. 一套代码可以生成多端
- b. 学习成本低,语法是vue的,组件是小程序的
- c. 拓展能力强
- d. 使用HBuilderX开发,支持vue语法
- e. 突破了系统对H5调用原生能力的限制
- 缺点:
- a. 问世时间短,很多地方不完善
- b. 社区不大
- c. 官方对问题的反馈不及时
- d. 在Android平台上比微信小程序和iOS差
- e. 文件命名受限
# vue , 微信小程序 , uni-app属性的绑定
- vue和uni-app动态绑定一个变量的值为元素的某个属性的时候,会在属性前面加上冒号":";
- 小程序绑定某个变量的值为元素属性时,会用两个大括号{{}}括起来,如果不加括号,为被认为是字符串。
# jQuery、vue、小程序、uni-app中的本地数据存储和接收
- jQuery:
存:$.cookie('key','value')
取:$.cookie('key')
vue:
存储:localstorage.setItem(‘key’,‘value’)
接收:localstorage.getItem(‘key’)
微信小程序:
存储:通过wx.setStorage/wx.setStorageSync写数据到缓存
接收:通过wx.getStorage/wx.getStorageSync读取本地缓存,
uni-app:
存储:uni.setStorage({key:“属性名”,data:“值”}) //异步
- uni.setStorageSync(KEY,DATA) //同步
接收:uni.getStorage({key:“属性名”,success(res){res.data}}) //异步
- uni.getStorageSync(KEY) //同步
移除:uni.removeStorage(OBJECT) //从本地缓存中异步移除指定 key。
- uni.removeStorageSync(KEY) //从本地缓存中同步移除指定 key。
清除:uni.clearStorage() //清理本地数据缓存。
- uni.clearStorageSync() //同步清理本地数据缓存。
# 跨端适配—条件编译
- 开发者按照 uni-app 规范开发即可保证多平台兼容,大部分业务均可直接满足。但每个平台有自己的一些特性,因此会存在一些无法跨平台的情况。因此就有了条件编译这个模式,不仅是js逻辑代码,template和css样式都可以设置成在某个环境中生效,在其他环境不生效
//template
<!-- #ifdef MP-WEIXIN -->
<!-- 只在小程序中生效 -->
<view>我是微信小程序</view>
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<!-- 只在 app 中生效 -->
<view>我是 app </view>
<!-- #endif -->
//js
// #ifndef H5
// 表示只有 h5 不使用这个 api
uni.createAnimation(OBJECT)
// #endif
//css
/* #ifdef MP-WEIXIN */
/* 只在小程序中生效 */
.header {
color:red
}
/* #endif */
← Vue