上个月写了一个公司的微信小程序项目,趁热打铁,分享一篇开发教程,希望对还没有小程序开发经验的同学有点帮助,对于有 VUE 经验的同学来说,看完这一篇就可以直接上手。
这篇文章我们用提问的方式来完成,带着问题来学习更轻松哟!
搜索 tips 可以直接查看避坑经验。
视图层加逻辑层,视图层负责渲染,逻辑层负责处理事件。渲染层和逻辑层处于两个线程,通过 微信客户端 通讯。
小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务。整个小程序框架系统分为两部分:逻辑层(App Service)和 视图层(View)。小程序提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框架,并在 视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑。
小程序框架的逻辑层并非运行在浏览器中,因此 JavaScript 在 web 中一些能力都无法使用,如 window,document 等。
因为小程序的 WXML 并不是原生的 HTML,而是微信自己实现的基于 XML 的语法。在开发过程中使用微信小程序的标签语言规范。举个例子:
wxss
中常用的样式选择器
WXSS
是一套样式语言,用来决定WXML
的组件应该怎么显示
wxss
对 css
进行了扩充以及修改,以适应微信小程序的开发
注:wxss 详细文档
wxss
注: wxss详细文档
rpx
尺寸单位
rpx
: 是微信小程序独有的,解决屏幕自适应的尺寸单位
750rpx
rpx
设置元素和字体的大小,小程序在不同尺寸的屏幕上,可以实现自动适配
注:rpx 单位详细文档
rpx
与 px
之间的换算
那么也就是说:如果在iPhone6
上,
如果要绘制宽100px
,高20px
的盒子,换算成rpx
单位,
注:rpx 单位详细文档
开发微信小程序时设计师可以用
iPhone6
作为视觉稿的标准。
开发微信小程序时,设计师可以用 iPhone6
作为视觉稿的标准。
如果要根据 iPhone6
的设计稿,绘制小程序页面,可以直接把单位从 px
替换为 rpx
。
@import
语句可以导入外联样式表
app.wxss
中的样式为全局样式,作用于每一个页面。
page
的 wxss
文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 app.wxss
中相同的选择器。
注意:当局部样式的权重大于或等于全局样式的权重时,才会覆盖全局的样式效果!
注:wxss 详细文档
小程序根目录下的
app.json
文件用来对微信小程序进行全局配置,它决定了页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。
app.json
配置文件中,最主要的配置节点是:
pages
数组:配置小程序的页面路径
window
对象:用于设置小程序的状态栏、导航条、标题、窗口背景色
tabBar
对象:配置小程序的tab栏效果
pages
数组的用法
app.json
中的pages
数组,用来配置小程序的页面路径
pages
用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径+文件名 信息。
.json
、 .js
、 .wxml
和 .wxss
四个文件进行处理。
常见的属性配置: 常见的属性配置
通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为
当全局开启下拉刷新功能之后,默认的窗口背景为白色
当全局开启下拉刷新功能之后,默认窗口的loading样式为白色
手指在屏幕上的上拉滑动操作,从而加载更多数据的行为
注意: 默认距离为 50px
,如果没有特殊需求,建议使用默认值即可
tabBar
是移动端应用常见的页面效果,用于实现多页面的快速切换;小程序中通常将其分为底部tabBar
和顶部tabBar
注意:tabBar
中,只能配置最少2个、最多5个 tab 页签,当渲染顶部 tabBar
的时候,不显示 icon
,只显示文本
tabBar
的组成部分
iconPath
:未选中时的图片路径
color
:tab
上的文字默认(未选中)颜色
tabBar
节点的配置项
app.json
中的 window
节点,可以全局配置小程序中每个页面的窗口表现;
.json
配置文件”就可以实现这种需求;
注意:页面级别配置优先于全局配置生效
注: 页面配置详细文档
生命周期(Life Cycle)是指一个对象从 创建 -> 运行 -> 销毁 的整个阶段,强调的是一个时间段。
注意:页面的生命周期范围较小,应用程序的生命周期范围较大
小程序框架提供的内置函数,会伴随着生命周期,自动按次序执行
允许程序员在特定的生命周期时间点上,执行某些特定的操作。例如,页面刚加载的时候,在生命周期函数中自动发起数据请求,获取当前页面的数据;
注意:生命周期强调的是时间段,生命周期函数强调的是时间点。
app.js
是小程序执行的入口文件,在 app.js
中必须调用 App()
函数,且只能调用一次。其中,App()
函数是用来注册并执行小程序的。
App(Object)
函数接收一个 Object
参数,可以通过这个 Object
参数,指定小程序的生命周期函数。
.js
文件,且必须调用 Page()
函数,否则报错。其中 Page()
函数用来注册小程序页面。
Page(Object)
函数接收一个 Object
参数,可以通过这个 Object
参数,指定页面的生命周期函数。