以一个天气小程序展现一下小程序开发的总体流程,使用原生开发,未使用比较流行的(如wepy、mpvue)框架。javascript
阅读小程序官方文档,熟悉开发者工具。css
几个tips:html
项目结构前端
生命周期vue
onLaunch() {
console.log('onLaunch监听小程序初始化');
}
onShow() {
console.log('onShow监听小程序显示');
}
onHide() {
console.log('onLaunch监听小程序隐藏');
}
复制代码
onLoad(options) {
console.log('onLoad监听页面加载');
}
onReady() {
console.log('onReady监听页面初次渲染完成');
}
onShow() {
console.log('onShow监听页面显示');
}
onHide() {
console.log('onHide监听页面隐藏');
}
onUnload() {
console.log('onUnload监听页面卸载');
}复制代码
通常状况下,小程序的生命周期函数执行先于页面的生命周期函数。java
自定义组件git
组件文件相似页面结构,也有四个文件。es6
{
"component": true
}
复制代码
<view>
<view class="inner">{{innerText}}</view>
<slot></slot></view>复制代码
.inner {
color: red;
}复制代码
Component({
properties: {
// 这里定义了innerText属性,属性值能够在组件使用时指定
innerText: {
type: String,
value: 'default value',
}
},
data: {
// 这里是一些组件内部数据
someData: {}
},
methods: {
// 这里是一个自定义方法
customMethod() {}
}
})复制代码
几个tips:
数据库
全局变量json
小程序提供了globalData来存储全局通用数据。
globalData: { userInfo: null, city: "" }复制代码
const app = getApp();
app.globalData.userName = "Tom"复制代码
状态管理
小程序经过页面或组件各自的 setData 再加上父子、兄弟间等等组件间的通信会让代码很乱,若是再加上跨页面之间的组件通信,会让程序很是难维护和调试。
小程序的工程化已经作得十分完善,目前最大的痛点就在于状态管理和跨页通信了。
介绍下腾讯开源的一款状态管理解决方案---Westore。
以天气小程序为例。
城市为首页和搜索页都控制的数据。
当小程序开发完成,真机调试结束后,即可以上上传咱们的代码至微信服务器。固然开发者工具也提供了git来管理咱们的代码。
代码上传完毕后,可登陆微信公众平台小程序模块,管理 -> 版本管理页面,提交审核咱们的代码版本,待审核完毕后,即可发布咱们的小程序,也可延迟提交审核咱们的代码,先将代码设为体验版本,再经过 管理 -> 成员管理 设置咱们的微信好友进行小规模体验测试。
开发者无需搭建服务器,就可根据提供的api进行核心业务的后端开发工做。
目前提供三大基础能力支持:
云函数:能够认为就是后端函数,微信私有协议自然鉴权,开发者只需编写自身业务逻辑代码
数据库:一个既可在小程序前端操做,也能在云函数中读写的 JSON 数据库
文件存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理
优势: 云开发小程序,经过提供客户端 API 的方式,封装了不少服务处理和管理维护的过程,使得服务架构对小程序开发者的门槛大大下降。开发者只须要使用 Javascript 一种语言,结合提供的 API,能够完成小程序的开发、服务的业务逻辑编写、数据管理、用户管理,也省去了不少系统安全、服务搭建、性能维护等工做。