热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端开发系列093小程序篇之小程序框架系统级文件

title:前端开发系列093-小程序篇之小程序框架系统级文件tags:categories:[]date:2018-11-2200:00:02本文介绍开发微信小程序项目中的主体文

title: 前端开发系列093-小程序篇之小程序框架系统级文件
tags:
categories: []
date: 2018-11-22 00:00:02

本文介绍开发微信小程序项目中的主体文件,这些文件的作用,以及具体的配置字段。



1.0 配置文件(app.json)


app.json文件说明

该文件是小程序的配置文件,编写的时候需要严格遵循json的格式规范,在程序加载的时候负责对小程序的全局进行配置,配置项如下:

☑︎ page:设置页面路径。

◻︎ tabBar:设置tab的表现。

◻︎ window:设置默认页面的窗口表现。

◻︎ networkTimeout:设置网络超时时间。

◻︎ debug:设置是否开启debug模式,可选项为true或false,默认关闭。

列出app.json文件内容的整体结构

{
"pages":[],
"window":{},
"tabBar":{},
"networkTimeout":{},
"debug":false
}

pages配置项

pages配置选项负责注册小程序的页面,是必须要填写的,当我们使用开发工具来创建页面的时候默认会自动生成对应的配置信息。

pages配置项的value值是一个包含多有页面路径的数组,用来指定小程序由哪些页面构成,其中每一项均有“路径+文件名”组成,下面给出示例:

{
"pages": [
"pages/home/home",
"pages/cart/cart",
"pages/category/category",
"pages/mine/mine",
"pages/index/index",
"pages/logs/logs",
"pages/login/login",
"component/wdd-component/block/index",
"pages/mine/coupon/coupon",
"component/wdd-component/addresscard/index"
]
}

说明:pages配置项中的第一个元素(上面为home)默认为小程序的首页,路径中不需要填写文件后缀名,渲染页面的时候框架会自动寻找路径并把同名的.json、.wxml、.wxss和.js文件进行整合。


window配置项

window配置项负责设置小程序状态栏、导航条、标题、窗口背景色等系统级样式。

navigationBarBackgroundColor 导航栏背景颜色 [`HexColor类型`]
navigationBarTextStyle<导航栏标题颜色 [`String类型`],black或white(默认)
navigationBarTitleText 导航栏标题文字内容 [`String类型`]
navigationStyle 导航栏样式 [`String类型`],default(默认)或custom
backgroundColor 窗口的背景色 [`HexColor类型`]
backgroundTextStyle 下拉加载的样式 [`String类型`],dark(默认)和light
backgroundColorTop 顶部窗口的背景色 [`HexColor类型`] ,仅 iOS 支持
backgroundColorBottom 底部窗口的背景色 [`HexColor类型`] ,仅 iOS 支持
enablePullDownRefresh 全局开启下拉刷新 [`Boolean类型值`],true和false(默认)
onReachBottomDistance 上拉触底事件触发时距底部距离 [`Number类型`],默认值为50px

这里给出一个小程序项目中的window配置项示例

{
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#000",
"navigationBarTitleText": "文顶顶的小程序",
"navigationBarTextStyle": "white",
"backgroundColor": "#eeeeee"
}
}

tabBar配置项

tabBar配置项 用于设置小程序中的tabBar选项卡,在商业小程序中使用频率很高。tabBar配置项的可配置属性如下:

color tab 上的文字默认颜色[`HexColor类型`]
selectedColor tab 上的文字选中时的颜色[`HexColor类型`]
backgroundColor tab 的背景色[`HexColor类型`]
borderStyle tabbar上边框的颜色, 仅支持 black / white(默认)
position tabBar的位置,仅支持 bottom / top[`String类型`]
list tab 的列表最少2个、最多5个元素[`Array类型`]

list配置项 中的每一项都应该是一个对象,代表着一个tab的相关配置。list配置项的课配置属性如下

text tab 上按钮文字
pagePath 页面路径,必须在 pages 中先定义
iconPath 图片的相对路径,icon 大小限制为40kb,不支持网络图片。
selectedIconPath 选中时的图片相对路径,icon 大小限制为40kb,不支持网络图片。

这里给出一个小程序项目中的tabBar配置项的示例和最终显示结果:

{
"tabBar": {
"selectedColor": "#000000",
"list": [
{
"pagePath": "pages/home/home",
"text": "首页",
"iconPath": "img/tabbar/home.png",
"selectedIconPath": "img/tabbar/homeSelected.png"
},
{
"pagePath": "pages/login/login",
"text": "分类",
"iconPath": "img/tabbar/category.png",
"selectedIconPath": "img/tabbar/categorySelected.png"
},
{
"pagePath": "pages/cart/cart",
"text": "购物车",
"iconPath": "img/tabbar/cart.png",
"selectedIconPath": "img/tabbar/cartSelected.png"
},
{
"pagePath": "pages/mine/mine",
"text": "我的",
"iconPath": "img/tabbar/mine.png",
"selectedIconPath": "img/tabbar/mineSelected.png"
} ]
}}

上面配置项的显示效果如下图


请求超时和debug模式

networkTimeout用于控制小程序中所有网络请求的超时时间(只能通过该配置项统一的配置)。

debug配置项用于控制是否开启debug模式,默认情况下是关闭的,当debug模式设置为true之后在开发者工具的控制面板,所有的调试信息将以info的形式输。

说明:需要注意全局配置文件和页面配置文件的关系,当路由到对应页面的时候,页面配置文件的配置项将会覆盖全局配置


2.0 逻辑控制文件(app.js)

app.js是小程序的整体逻辑控制文件,在该文件中通过App()函数来注册小程序的生命周期函数、全局方法和全局属性,而且已经注册的小程序实例可以在其他的逻辑层代码中通过getApp()函数获取。

App()函数用于注册一个微信小程序。

App()函数必须在app.js中注册,且不能注册多个。

App()函数的Object参数对象主要包括生命周期函数和其它数据,生命周期函数用于程序监听。

生命周期函数说明

当启动一个微信小程序的时候,会首先依次触发onLaunchonShow方法,然后通过app.json配置文件中的pages配置项来注册相应的页面,最后根据默认路径加载首页。当用户点击关闭标签或点击了设备的Home按钮离开微信的时候小程序并不会直接销毁,而是进入后台,这两种情况都会触发onHide方法,当再次打开微信小程序的时候会触发onShow方法。当小程序进入后台一定时间或者系统资源占用过高的时候会被真正的销毁。

注册小程序的示例代码(该代码可以在app.js文件通过敲入App + Tab键的方式生成)

App({
/**
* 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
*/
onLaunch: function () {},
/**
* 当小程序启动,或从后台进入前台显示,会触发 onShow
*/
onShow: function (options) {},
/**
* 当小程序从前台进入后台,会触发 onHide
*/
onHide: function () {},
/**
* 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
*/
onError: function (msg) {},
otherDate:'存放其他数据'
})

3.0 全局样式文件(app.wxss)

WXSS是小程序基于CSS拓展的一套样式语言,它实现了CSS大部分规则。

app.wxss是全局样式表,对项目中每个页面都有效,可以将一些系统级别的样式统一写入到该文件中。

注意:页面在渲染的时候,页面中的.wxss文件样式会覆盖app.wxss中相同的选择器样式。

原创文章,访问个人站点 文顶顶 以获得更好的阅读体验。

版权声明:著作权归作者所有,商业转载请联系文顶顶获得授权,非商业转载请注明出处。



推荐阅读
  • 题目描述:小K不幸被LL邪教洗脑,洗脑程度之深使他决定彻底脱离这个邪教。在最终离开前,他计划再进行一次亚瑟王游戏。作为最后一战,他希望这次游戏能够尽善尽美。众所周知,亚瑟王游戏的结果很大程度上取决于运气,但通过合理的策略和算法优化,可以提高获胜的概率。本文将详细解析洛谷P3239 [HNOI2015] 亚瑟王问题,并提供具体的算法实现方法,帮助读者更好地理解和应用相关技术。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • Prim算法在处理稠密图时表现出色,尤其适用于边数远多于顶点数的情形。传统实现的时间复杂度为 \(O(n^2)\),但通过引入优先队列进行优化,可以在点数为 \(m\)、边数为 \(n\) 的情况下显著降低时间复杂度,提高算法效率。这种优化方法不仅能够加速最小生成树的构建过程,还能在大规模数据集上保持良好的性能表现。 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 微信支付授权目录配置详解及操作步骤
    在使用微信支付时,若通过WeixinJSBridge.invoke方法调用支付功能,可能会遇到“当前页面URL未注册”的错误提示,导致get_brand_wcpay_request:fail调用微信JSAPI支付失败。为解决这一问题,需要正确配置微信支付授权目录,确保支付页面的URL已成功注册。本文将详细介绍微信支付授权目录的配置步骤和注意事项,帮助开发者顺利完成支付功能的集成与调试。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • 在Spring框架中,基于Schema的异常通知与环绕通知的实现方法具有重要的实践价值。首先,对于异常通知,需要创建一个实现ThrowsAdvice接口的通知类。尽管ThrowsAdvice接口本身不包含任何方法,但开发者需自定义方法来处理异常情况。此外,环绕通知则通过实现MethodInterceptor接口来实现,允许在方法调用前后执行特定逻辑,从而增强功能或进行必要的控制。这两种通知机制的结合使用,能够有效提升应用程序的健壮性和灵活性。 ... [详细]
author-avatar
p欧阳宏生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有