当前位置:网站首页>微信小程序
微信小程序
2022-06-21 08:33:00 【WCanTouch】
微信小程序
是时候研究一下微信小程序了。
首先介绍一下微信小程序代码编辑平台的的快捷键:
界面工具快捷键:

普通工具快捷键:

编辑工具快捷键:

小程序代码构成
目录结构
小程序包含一个描述整体程序的 app 和多个描述各自页面的 page。
一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:
| 文件 | 必需 | 作用 |
|---|---|---|
| app.js | 是 | 小程序逻辑 |
| app.json | 是 | 小程序公共配置 |
| app.wxss | 否 | 小程序公共样式表 |

对照上面的项目结构,生成的项目工程中会有下面几个文件:
.json后缀的JSON配置文件.wxml后缀的WXML模板文件.wxss后缀的WXSS样式文件.js后缀的JS脚本逻辑文件
接下来我们分别看看这4种文件的作用。
JSON 配置
项目的根目录有一个 app.json 和 project.config.json,此外在 pages/logs 目录下还有一个 logs.json
小程序配置 app.json
app.json 是当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等。项目里边的 app.json 配置内容如下:
{
"pages": [
"pages/index/index",
"pages/logs/logs"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle": "black"
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}部分字段的意思如下:
pages字段 —— 用于描述当前小程序所有页面路径,这是为了让微信客户端知道当前你的小程序页面定义在哪个目录。window字段 —— 定义小程序所有页面的顶部背景颜色,文字颜色定义等。
组件
小程序提供了丰富的基础组件给开发者,开发者可以像搭积木一样,组合各种组件拼合成自己的小程序。
就像 HTML 的 div, p 等标签一样,在小程序里边,你只需要在 WXML 写上对应的组件标签名字就可以把该组件显示在界面上,
注册页面
对于小程序中的每个页面,都需要在页面对应的 js 文件中进行注册,指定页面的初始数据、生命周期回调、事件处理函数等。
使用 Page 构造器注册页面
简单的页面可以使用 Page() 进行构造。
代码示例:
//index.js
Page({
data: {
text: "This is page data."
},
onLoad: function(options) {
// 页面创建时执行
},
onShow: function() {
// 页面出现在前台时执行
},
onReady: function() {
// 页面首次渲染完毕时执行
},
onHide: function() {
// 页面从前台变为后台时执行
},
onUnload: function() {
// 页面销毁时执行
},
onPullDownRefresh: function() {
// 触发下拉刷新时执行
},
onReachBottom: function() {
// 页面触底时执行
},
onShareAppMessage: function () {
// 页面被用户分享时执行
},
onPageScroll: function() {
// 页面滚动时执行
},
onResize: function() {
// 页面尺寸变化时执行
},
onTabItemTap(item) {
// tab 点击时执行
console.log(item.index)
console.log(item.pagePath)
console.log(item.text)
},
// 事件响应函数
viewTap: function() {
this.setData({
text: 'Set some data for updating view.'
}, function() {
// this is setData callback
})
},
// 自由数据
customData: {
hi: 'MINA'
}
})
视图层 View
框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。
将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层。
WXML(WeiXin Markup language) 用于描述页面的结构。
WXS(WeiXin Script) 是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。
WXSS(WeiXin Style Sheet) 用于描述页面的样式。
组件(Component)是视图的基本组成单元。
页面路由
在小程序中所有页面的路由全部由框架进行管理。
Tips:
navigateTo,redirectTo只能打开非 tabBar 页面。switchTab只能打开 tabBar 页面。reLaunch可以打开任意页面。- 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
- 调用页面路由带的参数可以在目标页面的
onLoad中获取。
尺寸单位
- rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
| 设备 | rpx换算px (屏幕宽度/750) | px换算rpx (750/屏幕宽度) |
|---|---|---|
| iPhone5 | 1rpx = 0.42px | 1px = 2.34rpx |
| iPhone6 | 1rpx = 0.5px | 1px = 2rpx |
| iPhone6 Plus | 1rpx = 0.552px | 1px = 1.81rpx |
建议: 开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。
注意: 在较小的屏幕上不可避免的会有一些毛刺,请在开发时尽量避免这种情况。
全局样式与局部样式
定义在 app.wxss 中的样式为全局样式,作用于每一个页面。在 page 的 wxss 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 app.wxss 中相同的选择器。
WXS
WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。
注意
- WXS 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
- WXS 与 JavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致。
- WXS 的运行环境和其他 JavaScript 代码是隔离的,WXS 中不能调用其他 JavaScript 文件中定义的函数,也不能调用小程序提供的API。
- WXS 函数不能作为组件的事件回调。
- 由于运行环境的差异,在 iOS 设备上小程序内的 WXS 会比 JavaScript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异。
边栏推荐
- 【VS】【使用问题】【解决方案】VS2010打开一直停留在启动界面
- STL教程3-类型转换static_cast、dynamic_cast、const_cast、reinterpret_cast方法
- How to write attractive titles for short videos? Learn these tips to make your title more convincing
- JUnit中的@Transactional消失不见,@Rollback是否能单抗测试回滚的大旗?
- Tidb and MySQL modify system variables / common statements (kill the process in process)
- 4.4 Eval function replaces function
- Given a two-dimensional list of m*n, find out whether a number exists
- Unity development related blog collection
- Blue Bridge Cup: Candy
- Showctf web primer series
猜你喜欢

安装MySQL出现白页面怎么办

Gql+nodejs+mysql database

Using elastic stack to analyze Olympic data (II)

For hand drawn graphics, covering multiple topics, CVPR 2022 sketchdl workshop begins to solicit contributions!

Diary (C language summary)

TiDB3.0- 4.0 内存控制/修改日志保存天数/最大索引长度

Markdown rule for writing articles

Detailed analysis of ThreadPoolExecutor source code of thread pool

写文章的markdown规则

CTF show WEB10
随机推荐
Using elastic stack to analyze Olympic data (II)
【C】【时间操作】C语言中关于时间的操作
SQL to check the disk usage of the database / table, kill the process and terminate the connection in tidb
nodejs的post请求json类型及表单类型
26. Hikvision camera configuration and preliminary test
给两个字符串s和t,判断t是否为s的重新排列后组成的单词
PS prompts "script error -50 general Photoshop error, how to solve it?
Fd: file descriptor
4.9 commander. js
Unity . Net framework
[DB written interview 274] in Oracle, what is deferred segment creation?
Abstractqueuedsynchronizer (AQS) source code analysis - cyclicbarrier source code analysis
移动应用开发总结
4.8 inquirer-autocomplete-prompt
Summary of mobile application development
Gql+nodejs+mysql database
Audio immersive experience
函数声明和函数表达式的区别
【VS】【使用问题】【解决方案】VS2010打开一直停留在启动界面
Two image enhancement methods: image point operation and image graying