开始
文件类型与目录结构
微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地。
紧接着通过 app.json 的 pages 字段就可以知道你当前小程序的所有页面路径:
|
|
这个配置说明在项目定义了两个页面,分别位于 pages/index/index 和 pages/logs/logs 目录。而写在 pages 字段的第一个页面就是这个小程序的首页(打开小程序看到的第一个页面)。
于是微信客户端就把首页的代码装载进来,通过小程序底层的一些机制,就可以渲染出这个首页。
小程序启动之后,在 app.js 定义的 App 实例的 onLaunch 回调会被执行:
|
|
整个小程序只有一个 App 实例,是全部页面共享的。
项目目录下面的以app开头的js
、json
、wxss
文件是描述应用程序整个的状态,在全局里面是唯一的(因为只有一个应用程序)。
|
|
app.json中page
的注册,只写了文件名,没有写后缀,这样并不是注册某一个wxml
或者某一个js
文件,而是注册名为welcome
的所有文件,自动地把welcome
相关的4种类型的文件关联再一起。
注册小程序页面以及组件的用法
- Swiper组件:做轮播
Flex弹性盒子模型
在flex容器中默认存在两条轴,水平主轴(main axis) 和垂直的交叉轴(cross axis)。
在容器中的每个单元块被称之为 flex item,每个项目占据的主轴空间为 (main size), 占据的交叉轴的空间为 (cross size)。
注意:不能先入为主认为宽度就是 main size,高度就是 cross size,这个还要取决于你主轴的方向,如果你垂直方向是主轴,那么项目的高度就是 main size。
flex-direction
:决定主轴的方向(即项目排列方向)
css
.container {
flex-direction: row | row-reverse | column | column-reverse;
}
- 默认值:
row
,主轴为水平方向,起点在左端。
row-reverse
:株洲为水平方向,起点在右端。
column
:主轴为垂直方向,起点在上沿。
column-reverse
:主轴为垂直方向,起点在下沿。
flex-wrap
:决定容器内项目是否可换行。
默认情况下,项目都排在主轴线上,使用flex-wrap
可实现项目的换行。
|
|
- 默认值:
nowrap
不换行,即当主轴尺寸固定,当空间不足时,项目尺寸会随之调整而不会挤到下一行。
wrap
:项目主轴尺寸超出容器时换行,第一行在上方。
wrap-reverse
:换行,第一行在下方。
justify-content
:定义了项目在主轴的对齐方式。
|
|
- 默认值:
flex-start
左对齐。
flex-end
:右对齐。
center
:居中。
space-between
:两端对齐,项目之间的间隔相等,即剩余空间等分成间隙。
space-around
:每个项目两侧的间隔相等,所以项目之间的间隔比项目与边缘的间隔大一倍。
align-items
:定义了项目再交叉轴上的对齐方式
|
|
主轴为水平方向,即flex-direction: row
- 默认值为
stretch
:如果项目未设置高度或者设置为auto,将占满整个容器的高度。
假设容器高度为100px,而项目都没有设置高度的情况下,则项目的高度也为100px。
first-start
:交叉轴的起点对齐
假设容器高度设置为 100px,而项目分别为 20px, 40px, 60px, 80px, 100px, 则如上图显示。
flex-end
:交叉轴的终点对齐
center
:交叉轴的中点对齐
baseline
:项目的第一行文字的基线对齐
移动端分辨率及小程序自适应单位RPX
rpx单位是微信小程序中css的尺寸单位,rpx可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
参考资料:微信小程序开发文档