微信小程序新手入门教程二:认识JSON配置文件

在上一篇我们介绍了微信小程序的注册和基本使用方式,并且写出了一个简单的页面,但是依然没有解释目录中的各种.json文件是做什么的。这篇我们就来认识一下各种JSON配置文件及其配置项。

一 认识JSON

首先先来认识一下JSON是什么。

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
  • JSON 具有自我描述性,更易理解
  • 关于JSON的使用可以参考 JSON 教程 | 菜鸟教程 (runoob.com)

简单来说,JSON对象是一个无序的键值对的集合,名称与值直接使用“”进行分隔,成对出现,键值对之间使用“”进行分隔,以{}作为起始,允许嵌套和空格。

JSON中的value可以是数组、数字、字符串、布尔类型,也可以是另一个JSON对象,还可以为null。具体规定如下:

  1. 复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象

  2. 原始类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null不能使用NaNInfinity-Infinityundefined

  3. 字符串必须使用双引号表示,不能使用单引号。

  4. 对象的键名必须放在双引号里面。

  5. 数组或对象最后一个成员的后面,不能加逗号。

 以下是常见的JSON对象举例

["abc", "def", "qwe"] { "age": 18, "height": 189 }{"names": ["张三", "李四"] }[ { "name": "张三"}, {"name": "李四"} ]

二 JSON配置文件

认识了JSON是什么,再来看一下什么是JSON配置文件。顾名思义,JSON配置文件就是使用JSON书写的配置文件,对于配置文件而言,适合书写与可表达数据的复杂度通常不可兼得,数据表达能力越强,自组织能力越强,越不适合人类书写。通常用于做配置文件的这些,如conf、ini、toml、json、xml、yaml等,各有优劣,conf、ini就是更侧重适合书写性,yaml、xml则更侧重表达能力。而json就是比较折中的选择了,读写都很方便,最大的缺点就是不能添加注释

微信小程序框架中包括四种不同的json配置文件,分别是:

  1. 项目根目录中的 app.json 配置文件
  2. 项目根目录中的 project.config.json 配置文件
  3. 项目根目录中的 sitemap.json 配置文件
  4. 每个页面文件夹中的 .json 配置文件

 接下来我们一一进行介绍。

三 app.json 配置文件

app.json负责进行整个小程序的全局配置,包括了小程序的所有页面路径、窗口外观、界面表现、 tab区域等。demo 项目里边的 app.json 配置内容如下:

 可以看到,该文件中包括了四个配置项,分别是:

  1. pages:用来记录当前小程序所有页面的路径
  2. window:全局定义小程序所有页面的背景色、文字颜色等
  3. style:全局定义小程序组件所使用的样式版本
  4. sitemapLocation:用来指明 sitemap.json 的位置

在上一篇微信小程序新手入门教程一:零基础上手-CSDN博客中,我们体验了在pages中直接添加路径的方式快速创建了新的页面,并实现了页面视图切换。pages就是记录所有页面路径的一个列表,每一项都对应一个页面的路径信息。需要注意的是,pages为string类型的数组,因此每一行内容都需要“”括起来,用“,”分隔,整体用[]表示数组。文件名也不需要写文件后缀,框架会自动去寻找对应位置的 .json.js.wxml.wxss 四个文件进行处理。entryPagePath属性则是指定小程序的默认启动路径(首页),如果未指定entryPagePath ,则由pages数组的第一项作为小程序的首页。

window配置项用于设置小程序的状态栏、导航条、标题、窗口背景色相关。下面列举几个较为常用的属性:

navigationBarBackgroundColor:设置导航栏背景颜色,需要用十六进制表示

navigationBarTextStyle:导航栏标题、状态栏颜色,仅支持white/black

navigationBarTitleText:可以设置导航栏标题文字内容

backgroundColor:设置窗口的背景色

backgroundColorTop/ backgroundColorBottom:设置顶部/底部窗口的背景色

其他用法可参照官方文档小程序配置 / 全局配置 (qq.com) 。

"window": {"navigationBarBackgroundColor":"#227700","navigationBarTextStyle": "white","navigationBarTitleText": "小程序","backgroundColor": "#0000FF","backgroundColorTop": "#00FFFF","backgroundTextStyle":"dark"}

 此外,我们也可以通过tabBar来设置tab栏实现页面切换,通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。

示例代码展示如下:

 "tabBar": {"list": [{"pagePath": "pages/index/index","text": "首页","iconPath": "icon/home.png","selectedIconPath": "icon/s_home.png"},{"pagePath": "pages/news/news","text": "新闻","iconPath": "icon/news.png","selectedIconPath": "icon/s_news.png"},{"pagePath": "pages/add/add","text": "发布","iconPath": "icon/add.png","selectedIconPath": "icon/s_add.png"},{"pagePath": "pages/message/message","text": "消息","iconPath": "icon/message.png","selectedIconPath": "icon/s_message.png"},{"pagePath": "pages/my/my","text": "我的","iconPath": "icon/my.png","selectedIconPath": "icon/s_my.png"}],"color": "#ffffff","backgroundColor": "#227700"},

其中list为中为tab栏页面的详细信息,至少有两项,可以通过text设置展示文字,iconPath设置图标样式,selectedIconPath设置选中时图标样式。

此外还可以通过color和selectedColor设置tab上文字及其被选中时的颜色,backgroundColor设置tab栏背景色,position设置tab栏所在位置,仅支持top和button(但是如果设置为top则不会显示图标,只能显示文字了)。

上述代码效果如上。这里推荐iconfont-阿里巴巴矢量图标库查找下载图标,里面有许多不同种类的图标,还可以自定义颜色。

简单的学习这些就够用了,其他内容可以结合官方教程自行探索​​​​小程序配置 / 全局配置 (qq.com)
 

 四 project.config.json 文件

project.config.json 是项目配置文件,这个文件相对来说就简单多了,主要用于记录一些个性化配置。

在setting中记录的是编译相关的配置, projectname为项目名称.......这里不多赘述。

五 sitemap.json 文件

这个文件就更简单了,里面只有不到十行代码。简单看一下内容就可以知道它主要用来设置小程序是否允许微信索引。当开发者允许微信索引时,微信会通过爬虫为小程序的页面内容建立索引。当用户的搜索关键字和页面的索引匹配成功的时候,小程序的页面将可能展示在搜索结果中。sitemap 的索引提示是默认开启的,可以在 project.config.json 的 setting 中配置字段 checkSiteMap 为 false来关闭。

六 页面的 .json 配置文件

这些配置文件就是独属于每个页面的了,用法与app.json相同,可以帮助我们对不同页面进行个性化设置,如果在该页面和app.json中的相同配置项设置了不同的内容,则该页面中的配置项会覆盖app.json中的。

以上就是关于json配置文件的全部介绍了,下一篇我们进行语法和样式的学习~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

航道大数据应用专项研究报告(附下载)

总体目标 充分认识航道大数据对行业治理的重要性和必要性,航道大数据的开发和利用是建设智慧航道的基础。基于大数据的航道管理体系,实现了现有数据的梳理和汇聚,跨部门数据的交换和整合,建立了数据关联和深度学习的模型机制&…

网络异常案例六_IP冲突

问题现象 同一个局域网下,一个路由器带几十台终端设备,存在终端设备获取到了相同IP的场景。该路由器也是DHCP Server。 有两个设备终端,都显示获取到了192.168.11.177这个ip。 抓包分析 抓包过程中,看到的一些问题。 ps&#x…

​(三)hadoop之hive的搭建1

下载 访问官方网站https://hive.apache.org/ 点击downloads 点击Download a release now! 点击https://dlcdn.apache.org/hive/ 选择最新的稳定版 复制最新的url 在linux执行下载命令 wget https://dlcdn.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz 2.解压…

第十一篇【传奇开心果系列】Python的OpenCV技术点案例示例:三维重建

传奇开心果短博文系列 系列短博文目录Python的OpenCV技术点案例示例系列 短博文目录一、前言二、OpenCV三维重建介绍三、基于区域的SGBM示例代码四、BM(Block Matching)算法介绍和示例代码五、基于能量最小化的GC(Graph Cut)算法介…

linux 组建和卸载raid1、raid0详细操作

组raid的最好是相同容量和型号的硬盘,否则会有木桶效应 linux下组raid有很多细节 一、安装raid软件 deb包 apt-get install mdadm或dnf包 dnf install mdadm二、组raid1-镜像,组raid0-并列 raid1和raid0只有在madam命令时一点点不同,其他…

智慧商城项目(ing)

项目概述 1.创建项目 目标:基于VueCli自定义创建项目架子,将目录调整成符合企业规范的目录 删除多余的文件 修改路由配置 和App.vue 新增两个目录 api/utils ①api接口模块:发送ajax请求的接口模块 ②utils工具模块:自己封装的一些工具方法模块 2…

Flutter组件 StatefulWidget、StatelessWidget 可继承写法

前言 学过Java的同学,应该都知道面向对象语言的三大特征,封装、继承、多态; Dart也是面向对象的语言,但是在Flutter中的很多组件都被下划线 _ 标记为私有,导致无法继承,本文将介绍一种非私有的创建组件写…

VUE开发记录

1、VUE模板传递参数到JS方法 <select-language :value"item.language" change"selectLanguage($event, key)"></select-language>selectLanguage(value, key){console.log(value, key) }, 2、Element框架el-form-item自定义label和内容 <…

追觅科技发布全折叠高速吹风机Pocket

2月2日&#xff0c;追觅科技召开2024新品发布会&#xff0c;一系列年度新品亮相。现场&#xff0c;追觅科技发布了个护重磅新品——追觅Pocket折叠高速吹风机&#xff0c;这也是行业首个全折叠高速吹风机。 创新柔性折叠技术&#xff0c;直卷吹一机全能 追觅Pocket折叠高速吹风…

07 SB3之@HttpExchange(TBD)

HttpExchange是SpringBoot3的新特性. Spring Boot3 提供了新的 HTTP 的访问能力&#xff0c;封装了Http底层细节. 通过接口简化 HTTP远程访问&#xff0c;类似 Feign 功能。 SpringBoot 中定义接口提供 HTTP 服务 --> 框架生成的代理对象实现此接口 --> 框架生成的代理…

java处理ppt方案详解

需求 需要系统中展示的ppt案例有一个动态展示的效果&#xff0c;也就是要有动画的交互&#xff0c;要求支持浏览器直接打开预览 背景 目前已经实现了前端上传pptx文件&#xff0c;后端解析为png的图片&#xff0c;前端掉接口返回对应的图片&#xff0c;模拟播放ppt的效果 各种尝…

树莓派Pico W无线开发板蓝牙通信MicroPython编程

内容提要:2023年6月14日,树莓派官方发布了对树莓派Pico W无线开发板(简称Pico W)MicroPython蓝牙功能的支持。本文首先介绍Pico W接口信号及蓝牙通信协议,然后通过Pico W接口信号扩展连接一只LED和一个按键,并给出Pico W蓝牙通信MicroPython编程示例。 一、Pico W接口信号…

华为数通方向HCIP-DataCom H12-821题库(单选题:401-420)

第401题 R1的配置如图所示,此时在R1查看FIB表时,关于目的网段192.168.1.0/24的下跳是以下哪一项? A、10.0.23.3 B、10.0.12.2 C、10.0.23.2 D、10.0.12.1 【答案】A 【答案解析】 该题目考查的是路由的递归查询和 RIB 以及 FIB 的关系。在 RIB 中,静态路由写的是什么,下…

时间序列预测 —— TCN模型

时间序列预测 —— TCN模型 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;在图像处理等领域取得了显著的成就&#xff0c;一般认为在处理时序数据上不如RNN模型&#xff0c;而TCN&#xff08;Temporal Convolutional Network&#xff09;…

十分钟上手vue!

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0c;Vue 都可以胜任。 一 vue.js的导入及使用 vue安装…

PostgreSQL从小白到高手教程 - 第44讲:pg流复制部署

PostgreSQL从小白到专家&#xff0c;是从入门逐渐能力提升的一个系列教程&#xff0c;内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容&#xff0c;希望对热爱PG、学习PG的同学们有帮助&#xff0c;欢迎持续关注CUUG PG技术大讲堂。 第44讲&#…

AJAX-入门

定义 概念&#xff1a;AJAX是浏览器与服务器进行数据通信的技术 使用 1.先使用axios库&#xff0c;与服务器进行数据通信 1&#xff09;基于XMLHttpRequest封装、代码简单、月下载量在14亿次 2&#xff09;Vue、React项目中都会用到axios 2.再学习XMLHttpRequest对象的使用…

高宇辰:打造“π”型人才 | 提升之路系列(七)

导读 为了发挥清华大学多学科优势&#xff0c;搭建跨学科交叉融合平台&#xff0c;创新跨学科交叉培养模式&#xff0c;培养具有大数据思维和应用创新的“π”型人才&#xff0c;由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

ElementUI Form:Upload 上传

ElementUI安装与使用指南 Upload 上传 点击下载learnelementuispringboot项目源码 效果图 el-upload.vue&#xff08;Upload上传&#xff09;页面效果图 el-upload.vue代码 import Vue from vue import VueRouter from vue-router import HomeView from ../views/HomeV…

【论文阅读笔记】Taming Transformers for High-Resolution Image Synthesis

Taming Transformers for High-Resolution Image Synthesis 记录前置知识AbstractIntroductionRelated WorkMethodLearning an Effective Codebook of Image Constituents for Use in TransformersLearning the Composition of Images with Transformers条件合成合成高分辨率图…