【小程序开发】小程序的架构和配置

【小程序开发】小程序的架构和配置

写在前面

🤗这里是前端程序员小张!

🌻人海茫茫,感谢这一秒你看到这里。希望我的文章对你的有所帮助!

🌟愿你在未来的日子,保持热爱,奔赴山海!

一、小程序的架构模型

  • 小程序的宿主环境为微信客户端
    • 宿主环境执行小程序的各种文件:wxml文件、wxss文件、js文件
  • 当小程序基于 WebView 环境下时,WebView 的 JS 逻辑、DOM 树创建、CSS 解析、样式计算、Layout、Paint (Composite) 都发生 在同一线程,在 WebView 上执行过多的 JS 逻辑可能阻塞渲染,导致界面卡顿。
  • 以此为前提,小程序同时考虑了性能与安全,采用了目前称为「双线程模型」的架构。
  • 双线程模型:
    • WXML模块和WXSS样式运行于渲染层,渲染层使用 WebView线程渲染(一个程序有多个页面,会使用多个 WebView的线程)。
    • JS脚本(app.js/home.js等)运行于逻辑层,逻辑层使用JsCore运行JS脚本。
    • 这两个线程都会经由微信客户端(Native)进行中转交互

在这里插入图片描述

二、小程序代码构成

默认创建的项目里生成了不同类型的文件:

  • .json后缀的 JSON 配置文件
  • .wxml 后缀的 WXML 模板文件
  • .wxss 后缀的 WXSS 样式文件
  • .js 后缀的 JS 脚本逻辑文件

2.1 JSON配置

JSON 是一种数据格式,并不是编程语言,在小程序中,JSON扮演的静态配置的角色。

  • 小程序配置 app.json
    • app.json 是当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等。
  • 页面配置 page.json
    • 独立定义每个页面的一些属性,例如顶部颜色、是否允许下拉刷新等等。
  • 工具配置 project.config.json
    • 项目配置文件, 比如项目名称、appid等;

2.2 其他

网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 是用来描述当前这个页面的结构,CSS 用来描述页面的样子,JS 通常是用来处理这个页面和用户的交互,在小程序中

  • WXML 充当的就是类似 HTML 的角色
  • WXSS具有CSS大部分的特性
  • 通过编写 JS 脚本文件来处理用户的操作

三、配置文件

3.1 全局配置文件

小程序根目录下的 app.json 文件用来对微信小程序进行全局配置

属性类型必填描述
pagesstring[]页面路径列表
windowObject全局的默认窗口表现
tabBarObject底部 tab 栏的表现
  • pages:页面路径列表
    • 用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径(含文件名) 信息
    • 小程序中所有的页面都是必须在pages中进行注册的
  • window:全局的默认窗口展示
    • 用户指定窗口如何展示,用于设置小程序的状态栏、导航条、标题、窗口背景色。
  • tabBar:底部tab栏的表现
    • 如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面

完整请参考官方文档:全局配置 | 微信开放文档 (qq.com)

3.2 页面配置文件

每一个小程序页面也可以使用 .json 文件来对本页面的窗口表现进行配置

  • 页面中配置项在当前页面会覆盖 app.json 的 window 中相同的配置项
属性类型默认值描述最低版本
navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如 #000000
navigationBarTextStylestringwhite导航栏标题颜色,仅支持 black / white
navigationBarTitleTextstring导航栏标题文字内容
navigationStylestringdefault导航栏样式,仅支持以下值: default 默认样式 custom 自定义导航栏,只保留右上角胶囊按钮。iOS/Android 微信客户端 7.0.0,Windows 微信客户端不支持
homeButtonbooleanfalse在非首页、非页面栈最底层页面或非tabbar内页面中的导航栏展示home键微信客户端 8.0.24
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStylestringdark下拉 loading 的样式,仅支持 dark / light

四、注册App实例

每个小程序都需要在 app.js 中调用 App 函数 注册小程序示例

  • 在注册时, 可以绑定对应的生命周期函数
  • 在生命周期函数中, 执行对应的代码

4.1 App函数的参数

属性类型默认值必填说明
onLaunchfunction生命周期回调——监听小程序初始化。
onShowfunction生命周期回调——监听小程序启动或切前台。
onHidefunction生命周期回调——监听小程序切后台。
onErrorfunction错误监听函数。
onPageNotFoundfunction页面不存在监听函数。
onUnhandledRejectionfunction未处理的 Promise 拒绝事件监听函数。
onThemeChangefunction监听系统主题变化
其他any开发者可以添加任意的函数或数据变量到 Object 参数中,用 this 可以访问

注册App时,我们一般会进行的操作是什么?

  1. 判断小程序的进入场景
  2. 监听生命周期函数,在生命周期中执行对应的业务逻辑,比如在某个生命周期函数中进行登录操作或者请求网络数据;
  3. 因为App()实例只有一个,并且是全局共享的(单例对象),所以我们可以将一些共享数据放在这里;

4.2 判断打开的场景

小程序的打开场景较多

  • 常见的打开场景:群聊会话中打开、小程序列表中打开、微信扫一扫打开、另一个小程序打开

如何确定打开的场景?

  • onLaunchonShow生命周期回调函数中,会有options参数,其中有scene值

在这里插入图片描述

4.3 定义全局App的数据

可以在Object中定义全局App的数据,定义的数据可以在其他任何页面中访问

globalData: {
    token: "",
    userInfo: {}
}

五、注册Page实例

小程序中的每个页面, 都有一个对应的js文件, 其中调用Page函数注册页面示例

  • 在注册时, 可以绑定初始化数据、生命周期回调、事件处理函数等

5.1 Page函数的参数

属性类型默认值必填说明
dataObject页面的初始数据
optionsObject页面的组件选项,同 Component 构造器 中的 options ,需要基础库版本 2.10.1
behaviorsString Array类似于mixins和traits的组件间代码复用机制,参见 behaviors,需要基础库版本 2.9.2
onLoadfunction生命周期回调—监听页面加载
onShowfunction生命周期回调—监听页面显示
onReadyfunction生命周期回调—监听页面初次渲染完成
onHidefunction生命周期回调—监听页面隐藏
onUnloadfunction生命周期回调—监听页面卸载
onRouteDonefunction生命周期回调—监听路由动画完成
onPullDownRefreshfunction监听用户下拉动作
onReachBottomfunction页面上拉触底事件的处理函数
onShareAppMessagefunction用户点击右上角转发
onShareTimelinefunction用户点击右上角转发到朋友圈
onAddToFavoritesfunction用户点击右上角收藏
onPageScrollfunction页面滚动触发事件的处理函数
onResizefunction页面尺寸改变时触发,详见 响应显示区域变化
onTabItemTapfunction当前是 tab 页时,点击 tab 时触发
onSaveExitStatefunction页面销毁前保留状态回调
其他any开发者可以添加任意的函数或数据到 Object 参数中,在页面的函数中用 this 可以访问。这部分属性会在页面实例创建时进行一次深拷贝

页面的生命周期函数
在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 简介 微信小程序是不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开的应用,在微信小程序的使用过程中,用户只增不减,很多的公司都开始研发属于自己的小程序,那么小程序该如何去制作并实现功能呢?本套视频教你一天打造企业级微信小程序的开发与应用 现在许多已开发过公众号的公司包括商家再次制作小程序,并且进行相互关联。而前期我们使用的公众号主要意在培养用户,而小程序则带来了更加全面的功能体验。微信生态当中,小程序相辅相成给了用户更加完美的用户体验,如果你现在是个人或者公司,想要享受到小程序的红利时刻,那第一步就是应该先会做一款属于企业或者属于你的小程序 课程内容 小程序基础 1、小程序注册 2、小程序开发者工具使用教程 3、小程序配置文件 4、小程序常用组件 5、小程序的模板语法 6、小程序中的样式编写 7、小程序中的JavaScript 8、小程序应用及页的生命周期 9、小程序常用API 10、小程序中的自定组件 11、小程序插件开发 12、小程序分包加载 13、小程序基础库版及兼容处理 14、小程序运行机制 15、小程序性能分析及优化 16、小程序云开发、云函数、云数据库 17、小程序上线和发布 黑马优购商城 1、原生框架的搭建 2、商品首页模块 3、分类商品模块 4、商品列表模块 5、商品详情模块 6、支付和登录模块 7、收藏模块 8、购物车模块 9、订单模块 10、搜索页面模块 11、个人中心模块 12、意见反馈模块 13、项目的优化和发布上线
Java小程序开发文档是指为了方便程序员开发和维护Java小程序而编写的文档,通常包括以下内容: 1. 程序概述:介绍Java小程序的功能、目的和使用范围。 2. 环境配置:说明在开发Java小程序之前需要安装和配置的开发环境,包括JDK、开发工具和其他必要的软件。 3. 技术架构:描述Java小程序的整体架构,包括模块划分、组件设计和系统流程等。 4. 功能设计:详细描述Java小程序的功能需求和设计方案,包括用户需求分析、系统功能规格和特性描述等。 5. 代码规范:定义Java小程序的编码规范,包括命名规则、缩进格式、注释要求等。 6. 数据库设计:说明Java小程序的数据库设计,包括表结构、关联关系和数据字典等。 7. API文档:列出Java小程序的所有接口,包括输入输出参数、返回值和调用方法等。 8. 测试用例:提供Java小程序的测试用例,包括功能测试、性能测试和回归测试等。 9. 部署指南:说明Java小程序的部署方式和流程,包括打包发布、配置文件修改和服务器部署等。 10. 维护文档:为Java小程序的后续维护提供技术支持和操作指南,包括常见问题解答和故障处理手册等。 总之,Java小程序开发文档是开发团队合作的重要文档,它提供了全面的开发指导和技术支持,为Java小程序的开发、测试和维护工作提供了重要参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端程序员小张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值