#应用生命周期

  1. <script>
  2. // 应用周期只能在App.vue里监听
  3. export default {
  4. //初始化完成出发,只触发一次
  5. onLaunch: function() {
  6. console.log('App Launch')
  7. },
  8. //从后台进入前台触发
  9. onShow: function() {
  10. console.log('App Show')
  11. },
  12. //从前台进入后台触发
  13. onHide: function() {
  14. console.log('App Hide')
  15. },
  16. //报错是触发
  17. onError: function() {
  18. console.log('App Error')
  19. },
  20. //对nvue页面发送的数据进行监听
  21. onUniNViewMessage(e) {
  22. console.log(JSON.stringify(e.data))
  23. }
  24. }
  25. </script>

#页面生命周期

  1. <script>
  2. export default {
  3. onLoad(option) {}, // 监听页面加载,option为上个页面传递的数据,参数类型为Object
  4. onReady() {}, // 监听页面初次渲染完成
  5. onShow() {}, // 监听页面显示。页面每次出现在屏幕上都触发
  6. onHide() {}, // 监听页面隐藏
  7. onUnload() {}, // 监听页面卸载
  8. onResize() {}, // 监听窗口尺寸变化
  9. onPullDownRefresh() {}, //监听用户下拉动作,一般用于下拉刷新
  10. onReachBottom() {}, //页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据
  11. onTabItemTap() {}, //点击 tab 时触发,参数为Object
  12. onShareAppMessage() {}, //用户点击右上角分享
  13. onPageScroll() {}, //监听页面滚动,参数为Object
  14. onNavigationBarButtonTap() {}, //监听原生标题栏按钮点击事件
  15. onBackPress() {}, //监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack
  16. onNavigationBarSearchInputChanged() {}, //监听原生标题栏搜索输入框输入内容变化事件
  17. onNavigationBarSearchInputConfirmed() {}, //监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。
  18. onNavigationBarSearchInputClicked() {} //监听原生标题栏搜索输入框点击事件
  19. }
  20. </script>
  21. 注意:
  22. (2)建议使用 uni-app 的 onReady代替 vue 的 mounted。
  23. (3)建议使用 uni-app 的 onLoad 代替 vue 的 created。

#页面路由配置及跳转

  1. {
  2. "pages": [ //pages数组中第一项表示应用启动页
  3. {
  4. "path": "pages/index/index",
  5. "style": {
  6. "navigationBarTitleText": "首页", // 导航标题
  7. "navigationBarBackgroundColor": "#F8F8F8", // 导航背景颜色
  8. "navigationBarTextStyle": "black", // 导航字体颜色
  9. "enablePullDownRefresh": true, // 下拉刷新
  10. "app-plus": { // App节点配置项
  11. "titleNView": {},
  12. "animationType": "fade-in",
  13. "animationDuration": 300
  14. },
  15. "h5" : {
  16. "titleNView" : false, //导航
  17. "type" : "default",
  18. "scrollIndicator" : "none"
  19. }
  20. }
  21. }
  22. ],
  23. "globalStyle": {
  24. "navigationBarTextStyle": "black", // 导航字体颜色
  25. "navigationBarTitleText": "uni-app", // 导航标题
  26. "navigationBarBackgroundColor": "#F8F8F8", // 导航背景颜色
  27. "backgroundColor": "#F8F8F8" // 页面背景颜色
  28. },
  29. "tabBar": {
  30. "color": "#333333",
  31. "borderStyle": "black",
  32. "backgroundColor": "#FFFFFF",
  33. "selectedColor": "#333333",
  34. "list": [{
  35. "pagePath": "pages/index/index",
  36. "iconPath": "",
  37. "selectedIconPath": "",
  38. "text": "首页"
  39. },
  40. {
  41. "pagePath": "pages/my/my",
  42. "iconPath": "",
  43. "selectedIconPath": "",
  44. "text": "我的"
  45. }
  46. ]
  47. },
  48. "globalStyle" : {
  49. "navigationBarTextStyle" : "white",
  50. "navigationBarTitleText" : "名称",
  51. "navigationBarBackgroundColor" : "#20A0FF",
  52. "backgroundColor" : "#f4f4f4"
  53. // "backgroundColorBottom" : "#f4f4f4",
  54. // "backgroundColorTop" : "#f4f4f4"
  55. }
  56. }

#页面布局

#条件编译

https://uniapp.dcloud.io/platform?id=%e8%b7%a8%e7%ab%af%e5%85%bc%e5%ae%b9

条件编译写法 说明
#ifdef APP-PLUS
需条件编译的代码
#endif
仅出现在 5+App 平台下的代码
#ifndef H5
需条件编译的代码
#endif
除了 H5 平台,其它平台均存在的代码
#ifdef H5 || MP-WEIXIN
需条件编译的代码
#endif
仅在 H5 平台或微信小程序平台存在的代码

%PLATFORM% 可取值如下:

平台 参考文档
APP-PLUS 5+App HTML5+ 规范
APP-PLUS-NVUE 5+App nvue Weex 规范
H5 H5
MP-WEIXIN 微信小程序 微信小程序
MP-ALIPAY 支付宝小程序 支付宝小程序
MP-BAIDU 百度小程序 百度小程序
MP-TOUTIAO 头条小程序 头条小程序
MP-QQ QQ小程序 (目前仅cli版支持)
MP 微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序

#页面跳转

  1. //在起始页面跳转到test.vue页面并传递参数
  2. uni.navigateTo({
  3. url: 'test?id=1&name=uniapp'
  4. });
  5. // 在test.vue页面接受参数
  6. export default {
  7. onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
  8. console.log(option.id); //打印出上个页面传递的参数。
  9. console.log(option.name); //打印出上个页面传递的参数。
  10. }
  11. }
  12. 注意:url有长度限制,太长的字符串会传递失败,可使用encodeURIComponent()
  13. uni.navigateTo({
  14. url: 'test?item' + encodeURIComponent(JSON.stringify(item))
  15. });
  16. // 在test.vue页面接受参数
  17. onLoad: function (option) {
  18. const item = JSON.parse(decodeURIComponent(option.item));
  19. }
  20. //保留当前页面,跳转到应用内的某个页面
  1. uni.redirectTo({
  2. url: 'test?id=1'
  3. });
  4. //关闭当前页面,跳转到应用内的某个页面。
  1. //在起始页面跳转到test.vue页面并传递参数
  2. uni.reLaunch({
  3. url: 'test?id=1'
  4. });
  5. // 在test.vue页面接受参数
  6. export default {
  7. onLoad: function (option) {
  8. console.log(option.id);
  9. }
  10. }
  11. //关闭所有页面,打开到应用内的某个页面。
  1. uni.switchTab({
  2. url: '/pages/index/index'
  3. });
  4. //跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
  1. uni.navigateBack({
  2. delta: 2 //后退的页数,如果大于现有页面数,则返回首页
  3. });
  4. uni.navigateBack(); // 上一页

#跳转窗口动画

  1. [https://uniapp.dcloud.io/api/router?id=animation](https://uniapp.dcloud.io/api/router?id=animation)