uniapp中pages.json相关介绍、数据绑定及生命周期

浅浅的花香味﹌ 2023-07-11 12:53 81阅读 0赞

pages.json中相关代码介绍

uniapp中tabBar 的设置:
在pages.json中设置tabBar “ 点击(查看相关用法)”
相关tabBar代码:

  1. "tabBar": {
  2. "color": "#7A7E83",
  3. "selectedColor": "#3cc51f",
  4. "borderStyle": "black",
  5. "backgroundColor": "#ffffff",
  6. "list": [{
  7. "pagePath": "pages/component/index",
  8. "iconPath": "static/image/icon_component.png",
  9. "selectedIconPath": "static/image/icon_component_HL.png",
  10. "text": "组件"
  11. }, {
  12. "pagePath": "pages/API/index",
  13. "iconPath": "static/image/icon_API.png",
  14. "selectedIconPath": "static/image/icon_API_HL.png",
  15. "text": "接口"
  16. }]
  17. }

tabBar 中的list数组顺序的调整可以改变显示的位置
pages.json代码中的navigationBarTitleText表示为:若首页未设置title则默认显示为uni-app

  1. "globalStyle": {
  2. "navigationBarTextStyle": "black",
  3. "navigationBarTitleText": "uni-app",
  4. "navigationBarBackgroundColor": "#F8F8F8",
  5. "backgroundColor": "#F8F8F8"
  6. }

在pages.json中pages数组中第一项表示应用启动页

  1. "pages": [
  2. {
  3. "path": "pages/index/index",
  4. "style": {
  5. "navigationBarTitleText": "首页"
  6. }
  7. }
  8. ,{
  9. "path" : "pages/news/news",
  10. "style" : {
  11. "navigationBarTitleText": "新闻"
  12. }
  13. }
  14. ,{
  15. "path" : "pages/test/test",
  16. "style" : {
  17. "navigationBarTitleText": "测试"
  18. }
  19. }
  20. ],

当前这段pages数组的代码启动页为首页,若想要将新闻页作为启动页只需将新闻页与首页交换位置
在这里插入图片描述
结论:通过调整pages的顺序可以控制初始化显示的位置
main.js是uni-app的入口文件
App.vue是uni-app的主组件,所有页面都是在App.vue下进行切换的,是页面入口文件,是一个应用配置,用来配置App的全局样式以及用来监听应用的生命周期
可以在vue文件中的onLoad函数中定义uni方法

  1. onLoad() {
  2. // uni.$on("testEmit",(rel)=>{
  3. // console.log(rel)
  4. // });
  5. uni.$once("testEmit",(rel)=>{
  6. console.log(rel)//只会被调用一次
  7. })
  8. },

数据绑定

小程序中可以写为<view :class="box{ {1}}">test</view>可以运行但在HX中会提示错误
uni中写为<view :class="'box'+1">test</view>

  1. <view :style="{width:'100px',height:'100px',backgroundcolor:'red'}">

以上代码在微信开发者工具中查看为:
在这里插入图片描述
绑定多个class 以数组的形式(注意外用双引则内用单引)

  1. <view :class="['box11','box22']"></view>

遍历数组

(在script中定义names数组)

  1. <view>
  2. <view v-for="(item,index) in names" :key="index">
  3. {
  4. {item}}
  5. </view>
  6. </view>

动态的切换class(样式可自行添加)

  1. <view>
  2. <view
  3. v-for="(item,index) in names"
  4. :key="index"
  5. :class="{box33:index===cu}"
  6. @click=="setIndexNum(index)"
  7. >
  8. {
  9. {item}}
  10. </view>
  11. </view>

script中的代码段:

  1. methods: {//点击切换
  2. setIndexNum(index){
  3. this.cu=index;
  4. }

v-show=”flase”相当于display:none 属性
v-if=”flase”相当于删除该元素

生命周期

应用生命周期

在App.vue文件中代码如下:

  1. <script>
  2. // 只能在App.vue里监听应用的生命周期
  3. export default {
  4. onLaunch: function() {
  5. console.log('初始化完成时触发(全局只触发一次)')
  6. },
  7. onShow: function() {
  8. console.log('当 uni-app 启动,或从后台进入前台显示')
  9. },
  10. onHide: function() {
  11. console.log('当 uni-app 从前台进入后台')
  12. }
  13. }
  14. </script>

onLaunch
onLaunch中option用来获取进入小程序或退出小程序的场景值可在网页打印处(console)查看

  1. <script>
  2. export default {
  3. onLaunch: function(option) {
  4. console.log('App Launch');
  5. console.log(option)
  6. },
  7. onShow: function() {
  8. console.log('App Show')
  9. },
  10. onHide: function() {
  11. console.log('App Hide')
  12. }
  13. }
  14. </script>

在这里插入图片描述
场景值显示为1001(表示进入了小程序);点击微信开发者工具中退出按钮时可查看场景值
在这里插入图片描述
点击该按钮后出现一下场景:
在这里插入图片描述
**onLoad监听用户进入小程序
onHide监听用户离开小程序
onError 当 uni-app 报错时触发
onUniNViewMessage 对 nvue 页面发送的数据进行监听
**

页面生命周期

  1. <script>
  2. export default {
  3. data() {
  4. return {
  5. };
  6. },
  7. onLoad(){
  8. console.log("页面初始化执行一次onLoad");
  9. },
  10. onReady(){
  11. console.log("页面加载完毕 执行一次onReady");
  12. },
  13. onShow(){
  14. console.log("页面进入执行 执行多次onShow");
  15. },
  16. onHide(){
  17. console.log("页面进入离开 执行多次onHide");
  18. },
  19. onUnload(){
  20. console.log("监听页面卸载 onUnload");
  21. },
  22. onResize(){
  23. console.log("监听窗口变化 onResize");
  24. },
  25. onPullDownRefresh(){
  26. console.log("用户下拉菜单时执行");
  27. },
  28. onTabItemTap(){
  29. console.log("用户点击了tabber");
  30. },
  31. onShareAppMessage(){
  32. console.log("用户进行了分享");
  33. return{
  34. title:"转发的标题",
  35. path:"pages/news/news",//转发的页面,
  36. imageUrl:"https://www.baidu.com/img/bd_logo1.png?where=super"//转发图片
  37. }
  38. },
  39. onPageScroll(){
  40. console.log("监听页面滚动");
  41. }
  42. }
  43. </script>
  • onLoad 监听页面的加载
  • onShow 当 uni-app 启动,监听用户进入小程序
  • onReady 页面加载(执行一次)
  • onHide 监听页面隐藏(页面进入离开 执行多次)
  • onUnload 监听页面卸载
  • onResize 监听窗口尺寸变化
  • onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新(需要在 pages.json 里,找到的当前页面的pages节点,并在 style 选项中将enablePullDownRefresh设置为true。)
  • onReachBottom 页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据
  • onTabItemTap 点击 tab 时触发
  • onShareAppMessage 当用户点击右上角分享时触发
  • onPageScroll 监听页面滚动
  • onNavigationBarButtonTap 监听原生标题栏按钮点击事件
  • onBackPress 监听页面返回
  • onNavigationBarSearchInputChanged 监听原生标题栏搜索输入框输入内容变化事件
  • onNavigationBarSearchInputConfirmed 监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。
  • onNavigationBarSearchInputClicked 监听原生标题栏搜索输入框点击事件
    (可自行测试)

组件生命周期函数

uni-app 组件支持的生命周期,与vue标准组件的生命周期相同
在自定义组件中写

  1. <script>
  2. export default {
  3. data() {
  4. return {
  5. say:"liyan"
  6. };
  7. },
  8. props:["msg"],
  9. beforeMount() {
  10. console.log("在挂载开始之前调用")
  11. },
  12. mounted() {
  13. console.log("挂载到实例上去之后调用");
  14. this.$nextTick(function(){
  15. // 渲染完毕
  16. console.log("OK");
  17. })
  18. },
  19. methods:{
  20. test(){
  21. //this.$emit("testShowName",{name:"liyan"})
  22. uni.$emit("testEmit",{name:"li"})
  23. }
  24. }
  25. }
  26. </script>
  • beforeCreate 在实例初始化之后被调用
  • created 在实例创建完成后被立即调用
  • beforeMount 在挂载开始之前被调用
  • mounted 挂载到实例上去之后调用
  • beforeupdate 数据更新时调用
  • updated 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子
  • beforeDestory 实例销毁之前调用。
  • destoryed Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
    详解
    在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,81人围观)

还没有评论,来说两句吧...

相关阅读

    相关 uniapp 应用生命周期

    应用生命周期 目录: components:存放可复用的组建 pages:页面存放位置 static:存放本地资源(图片,视频,只能存在这个文件夹中,代码不会被解析