微信小程序-----全局配置与页面配置

目录

前言

全局配置文件

一、window

1. 小程序窗口的组成部分

2. window 节点常用的配置项

3. 设置导航栏的标题 

4. 设置导航栏的背景色

 5. 设置导航栏的标题颜色

6. 全局开启下拉刷新功能

7. 设置下拉刷新时窗口的背景色

8. 设置下拉刷新时 loading 的样式

9. 设置上拉触底的距离

二、tabBar

1. 什么是 tabBar

2. tabBar 的 6 个组成部分

 3. tabBar 节点的配置项

4. 每个 tab 项的配置选项

 案例:配置 tabBar

 页面配置

1.页面配置和全局配置的关系 

2. 页面配置中常用的配置项


前言

        今天我们开始学习微信小程序中的全局配置,前面对微信小程序文件介绍的时候讲到过.json文件的基本作用和内容,那么本期的主角是.json文件,这个是作为微信小程序的全局配置文件,通过这个文件我们可以对微信小程序进行全局性的管理。

全局配置文件

小程序根目录下的 app.json 文件是小程序的全局配置文件。常用的配置项如下:

pages
记录当前小程序所有页面的存放路径
window
全局设置小程序窗口的外观
tabBar
设置小程序底部的  tabBar 效果
style
是否启用新版的组件样式

前面我们对pages属性有了详细的介绍,那本期这里就不做讲解(相关链接:微信小程序-----账号注册以及开发软件的下载与代码结构介绍-CSDN博客)

一、window

1. 小程序窗口的组成部分

2. window 节点常用的配置项

属性名

类型

默认值

说明

navigationBarTitleText

String

字符串

导航栏标题文字内容

navigationBarBackgroundColor

HexColor

#000000

导航栏背景颜色,如 #000000

navigationBarTextStyle

String

white

导航栏标题颜色,仅支持 black / white

backgroundColor

HexColor

#ffffff

窗口的背景色

backgroundTextStyle

String

dark

下拉 loading 的样式,仅支持 dark / light

enablePullDownRefresh

Boolean

false

是否全局开启下拉刷新

onReachBottomDistance

Number

50

页面上拉触底事件触发时距页面底部距离,单位为px

3. 设置导航栏的标题 

设置步骤:app.json -> window -> navigationBarTitleText

  "window": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "kunkun",
    "navigationBarBackgroundColor": "#fff"
  },

需求:把导航栏上的标题,从默认的 “WeChat”修改为“kunkun”,效果如图所示:

4. 设置导航栏的背景色

设置步骤:app.json -> window -> navigationBarBackgroundColor

  "window": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "kunkun",
    "navigationBarBackgroundColor": "#2b4b6b"
  },

需求:把导航栏标题的背景色,从默认的 #fff 修改为 #2b4b6b ,效果如图所示:

 5. 设置导航栏的标题颜色

设置步骤:app.json -> window -> navigationBarTextStyle

 "window": {
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "kunkun",
    "navigationBarBackgroundColor": "#2b4b6b"
  },

需求:把导航栏上的标题颜色,从默认的 black 修改为 white ,效果如图所示:

6. 全局开启下拉刷新功能

概念:下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为。

设置步骤:app.json -> window -> enablePullDownRefresh 的值设置为 true

  "window": {
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "kunkun",
    "navigationBarBackgroundColor": "#2b4b6b",
    "enablePullDownRefresh":true
  },

注意:在 app.json 中启用下拉刷新功能,会作用于每个小程序页面!

7. 设置下拉刷新时窗口的背景色

当全局开启下拉刷新功能之后,默认的窗口背景为白色。如果自定义下拉刷新窗口背景色,设置步骤为: app.json -> window -> backgroundColor 指定16进制的颜色值 #efefef。效果如下:

 "window": {
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "kunkun",
    "navigationBarBackgroundColor": "#2b4b6b",
    "enablePullDownRefresh": true,
    "backgroundColor": "#efefef"
  },

8. 设置下拉刷新时 loading 的样式

当全局开启下拉刷新功能之后,默认窗口的 loading 样式为白色,如果要更改 loading 样式的效果,设置步骤为 app.json -> window -> backgroundTextStyle 指定 dark 值。效果如下:

  "window": {
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "kunkun",
    "navigationBarBackgroundColor": "#2b4b6b",
    "enablePullDownRefresh": true,
    "backgroundColor": "#efefef",
    "backgroundTextStyle":"dark"
  },

                         注意: backgroundTextStyle 的可选值只有 light dark

9. 设置上拉触底的距离

概念:上拉触底是移动端的专有名词,通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为。

设置步骤: app.json -> window -> onReachBottomDistance 设置新的数值

注意:默认距离为50px,如果没有特殊需求,建议使用默认值即可。

二、tabBar

1. 什么是 tabBar

tabBar 是移动端应用常见的页面效果,用于实现多页面的快速切换。小程序中通常将其分为:

  • 底部 tabBar
  • 顶部 tabBar

注意:

  • tabBar中只能配置最少 2 最多 5 tab 页签
  • 当渲染顶部 tabBar 时,不显示 icon,只显示文本

2. tabBar 6 个组成部分

backgroundColor tabBar 的背景色
selectedIconPath :选中时的图片路径
borderStyle tabBar 上边框的颜色
iconPath :未选中时的图片路径
selectedColor tab 上的文字选中时的颜色
color tab 上文字的默认(未选中)颜色

 3. tabBar 节点的配置项

属性

类型

必填

默认值

描述

position

String

bottom

tabBar 的位置,仅支持 bottom/top

borderStyle

String

black

tabBar 上边框的颜色,仅支持 black/white

color

HexColor

tab 上文字的默认(未选中)颜色

selectedColor

HexColor

tab 上的文字选中时的颜色

backgroundColor

HexColor

tabBar 的背景色

list

Array

tab 页签的列表,

最少 2 最多 5 tab

4. 每个 tab 项的配置选项

属性

类型

必填

描述

pagePath

String

页面路径,页面必须在 pages 中预先定义

text

String

tab 上显示的文字

iconPath

String

未选中时的图标路径;当 postion 为 top 时,不显示 icon

selectedIconPath

String

选中时的图标路径;当 postion 为 top 时,不显示 icon

 案例:配置 tabBar

步骤1 - 拷贝图标资源

把资料目录中的 images 文件夹, 拷贝到小程序项目根目录中
将需要用到的小图标分为 3 组,每组两个,其中:
  • 图片名称中包含 -active 的是选中之后的图标
  • 图片名称中不包含 -active 的是默认图标

        截图如下:

步骤2 - 新建 3 个对应的 tab 页面

通过 app.json 文件的 pages 节点,快速新建 3 个对应的 tab 页面,示例代码如下:

步骤3 - 配置 tabBar 选项

打开 app.json 配置文件,和 pages window 平级,新增 tabBar 节点
tabBar 节点中,新增 list 数组 ,这个数组中存放的,是每个 tab 项的配置对象
list 数组中, 新增每一个 tab 项的配置对象 。对象中包含的属性如下:
  •  pagePath 指定当前 tab 对应的页面路径必填
  •  text 指定当前 tab 上按钮的文字必填
  •  iconPath 指定当前 tab 未选中时候的图片路径可选
  •  selectedIconPath 指定当前 tab 被选中后高亮的图片路径可选

app.json文件完整配置样式如下: 

{
  "pages": [
    "pages/test/test",
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window": {
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "kunkun",
    "navigationBarBackgroundColor": "#2b4b6b",
    "enablePullDownRefresh": true,
    "backgroundColor": "#efefef",
    "backgroundTextStyle":"dark"
  },
 
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/test/test",
        "text": "home",
        "iconPath": "/image/home.png",
        "selectedIconPath": "/image/home-active.png"
      },
      {
        "pagePath": "pages/index/index",
        "text": "msg",
        "iconPath": "/image/message.png",
        "selectedIconPath": "/image/message-active.png"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "logs",
        "iconPath": "/image/contact.png",
        "selectedIconPath": "/image/contact-active.png"
      }
    ]
  },

  "style": "v2",
  "componentFramework": "glass-easel",
  "sitemapLocation": "sitemap.json",
  "lazyCodeLoading": "requiredComponents"
}

这里我们就有三个界面,效果展示: 

 页面配置

        小程序中,每个页面都有自己的 .json 配置文件,用来对当前页面的窗口外观、页面效果等进行配置。

1.页面配置和全局配置的关系 

小程序中,app.json 中的 window 节点,可以全局配置小程序中每个页面的窗口表现

如果某些小程序页面想要拥有特殊的窗口表现,此时,“页面级别的 .json 配置文件”就可以实现这种需求。

注意:当页面配置与全局配置冲突时,根据就近原则,最终的效果以页面配置为准

这里,我们在test.json文件添加以下样式:

{
  "usingComponents": {
  },
  "navigationBarBackgroundColor": "#ff0000"
}

效果展示如下:

1705415544313


可以看出在上面全局配置的基础上,我修改了其中一个的页面配置,那么效果就会覆盖掉全局配置。

2. 页面配置中常用的配置项

页面配置项跟上面全局配置的配置项是一样的,如下表所示:

属性

类型

默认值

描述

navigationBarBackgroundColor

HexColor

#000000

当前页面导航栏背景颜色,如 #000000

navigationBarTextStyle

String

white

当前页面导航栏标题颜色,仅支持 black white

navigationBarTitleText

String

当前页面导航栏标题文字内容

backgroundColor

HexColor

#ffffff

当前页面窗口的背景色

backgroundTextStyle

String

dark

当前页面下拉 loading 的样式,仅支持 dark / light

enablePullDownRefresh

Boolean

false

是否为当前页面开启下拉刷新的效果

onReachBottomDistance

Number

50

页面上拉触底事件触发时距页面底部距离,单位为 px

 想要获取更多的学习资源,可以点击以下链接查看。 黑马程序员web前端视频教程从入门到精通Web前端视频教程完整版_Web前端视频教程从入门到精通_黑马程序员 (itheima.com)

 以上就是本期的全部内容了,我们下次见!

分享一张壁纸:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/327462.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯备赛 | 洛谷做题打卡day2

​ 蓝桥杯备赛 | 洛谷做题打卡day2 嵌套循环yyds!! 题目来源:洛谷P2670 [NOIP2015 普及组] 扫雷游戏 题目背景 NOIP2015 普及组 T2 题目描述 扫雷游戏是一款十分经典的单机小游戏。在 n n n 行 m m m 列的雷区中有一些格子含有地雷&am…

跨域请求的API接口调用流程

在Web开发中,前端和后端相互通信是非常常见的需求。通常情况下,前端通过发送HTTP请求调用后端的API接口来获取数据或执行某些操作。然而,由于同源策略的限制,浏览器默认情况下不允许跨域请求,即前端不能直接从一个域名…

48 WAF绕过-权限控制之代码混淆及行为造轮子

目录 Safedog代码层手写及脚本绕过BT Aliyun代码层手写及脚本绕过safedog,BT,Aliyun-基于覆盖加密变异下编码解码绕过-代码层Safedog,BT,Aliyun-基于冰蝎新型控制器绕过全面测试-行为层Safedog,BT,Aliyun-基于手写新型控制器绕过全…

添加 自定义校验方法,让用户自定义校验规则

目录 一、前置说明1、总体目录2、相关回顾3、本节目标 二、操作步骤1、项目目录2、代码实现3、测试代码4、日志输出 三、后置说明1、要点小结2、下节准备 一、前置说明 1、总体目录 《 pyparamvalidate 参数校验器,从编码到发布全过程》 2、相关回顾 添加 常用校…

软件设计师4--寻址方式

软件设计师4--寻址方式 考点1:指令的基本概念考点2:寻址方式例题: 考点1:指令的基本概念 一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下: 操作码字段地址码…

SpringCloud全链路灰度发布

日升时奋斗,日落时自省 目录 1、实现框架 2、负载均衡模块 3、封装负载均衡器 4、网关模块 5、服务模块 5.1、注册为灰度服务实例 5.2、设置负载均衡器 5.3、传递灰度标签 1、实现框架 Spring Cloud全链路灰色发布实现构架: 灰度发布的具体实现…

【C++ Primer Plus】2.1 进入C++

代码示例 #include <iostream> // a preprocessor directive 预处理器指令 int main () // function header { // start of function bodyusing namespace std; // make definitions visiblecout << "hello!"; // message…

动态路由综合实验-RIP

一.要求 1、R1--R3地址为192.168.1.0/24:请合理分配 2、R3的环回为3.3.3.0/24&#xff0c;该网段不能在rip中宣告 3、整个网络使用RIPV2&#xff0c;全网可达&#xff0c;路由表汇总&#xff0c;防止环路&#xff0c;保障更新安全&#xff0c;加快收敛速度 网络拓扑结构&…

服务器感染了.DevicData-P-XXXXXXXX勒索病毒,如何确保数据文件完整恢复?

引言&#xff1a; 在当今数字化时代&#xff0c;勒索病毒已成为网络安全威胁的一个严峻问题。其中&#xff0c;.DevicData-P-XXXXXXXX 勒索病毒以其恶意加密文件的手段引起了广泛关注。本文将介绍该病毒的特点、数据恢复方法以及如何预防遭受其攻击。 如不幸感染这个勒索病毒&…

workflow源码解析:ThreadTask

1、使用程序&#xff0c;一个简单的加法运算程序 #include <iostream> #include <workflow/WFTaskFactory.h> #include <errno.h>// 直接定义thread_task三要素 // 一个典型的后端程序由三个部分组成&#xff0c;并且完全独立开发。即&#xff1a;程序协议算…

【机器学习入门】机器学习基础概念与原理

*&#xff08;本篇文章旨在帮助新手了解机器学习的基础概念和原理&#xff0c;不深入讨论算法及核心公式&#xff09; 目录 一、机器学习概念 1、什么是机器学习&#xff1f; 2、常见机器学习算法和模型 3、使用Python编程语言进行机器学习实践 4、机器学习的应用领域 二…

Dokerfile

阅读目录 什么是dockerfile?Dockerfile的基本结构Dockerfile文件说明 什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。 docker build命令用于从Dockerfile构建映…

Android studio RecyclerView 应用设计

一、创建empty activity项目: 二、打开activity_main.xml布局文件: 添加RecyclerView控件 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/…

Spring Boot - Application Events 同步 VS 异步 发布订阅事件实战

文章目录 PreCode基础工程启动类切入口事件 发布事件同步 Listener异步Listener增加EnableAsync增加 Async 测试 Pre Spring Boot - Application Events 的发布顺序_ApplicationStartingEvent Spring Boot - Application Events 的发布顺序_ApplicationEnvironmentPreparedEv…

手机与电脑更改IP地址怎么使用代理IP?

在现代互联网时代&#xff0c;代理IP已成为许多人日常生活和工作中不可或缺的一部分。通过代理IP&#xff0c;用户可以隐藏自己的真实IP地址&#xff0c;并获得更好的网络体验。本文将详细介绍如何在手机和电脑上更改IP地址并使用代理IP。 一、手机使用代理IP 1. 打开手机设置&…

目标检测DETR:End-to-End Object Detection with Transformers

NMS 对一个目标生成了多个检测窗口&#xff0c;但是事实上这些窗口中大部分内容都是重复的&#xff0c;找到目标检测最优的窗口 选取多个检测窗口中分数最高的窗口&#xff0c;剔除掉其他同类型的窗口 anchor generator 首先在该点生成scale512, aspect ratio{1:2&#xff…

第10章 通信业务

文章目录 10.1.1 通信行业1、通信行业的界定2、通信行业的特点 10.1.2 通信企业10.1.3 通信终端1、通信终端的分类2、终端发展趋势 10.2.1 通信业务的定义及分类10.2.2 基础电信业务1、第一类基础电信业务A11 固定通信业务A12 蜂窝移动通信业务A13 第一类卫星通信业务A14 第一类…

uni-app购物车页面详细代码

效果图&#xff1a; 这里的购物车加减用的是uni-app中的sku插件 代码附下&#xff08;全&#xff09;&#xff1a; <script setup lang"ts"> import {reqMemberCartList,reqMemberdelentCart,reqMemberPutCart,putMemberCartSelectedAPI, } from /services/…

go语言初探(一)

package mainimport ("fmt""time" )func main() {fmt.Print("hello go!")time.Sleep(1 * time.Second)}运行后&#xff0c;结果如下&#xff1a; 1、golang表达式中&#xff0c;加&#xff1b;和不加&#xff1b;都可以 2、函数的{和函数名一…

解决com.alibaba.fastjson.JSONException: default constructor not found的问题

1.问题描述 在进行JSON和对象互转时&#xff0c;发现有个报错&#xff1a; com.alibaba.fastjson.JSONException: default constructor not found. class com.hellobike.ph.match.service.taxi.model.message.DelayAddSkuMsg 2.原因和解决方案 通过其提示可以看出在利用fastJ…
最新文章