目录
阅读须知
写这套专辑的初衷(一些废话)
我并非资深老前端(目前只有两年多工作经验),甚至不是本专业,有幸成为一名前端开发者,半数是兴趣使然。
设立这套专辑有两个目的
- 总结记录,这也是我自己学习方法中,占比较大的一步,好记性不如烂笔头,回头总结远比追着新技术跑重要很多
- 帮助和我一样对技术感兴趣但入门较为吃力的朋友
故总结中的有误之处,可优化之处,望各位朋友热情指正。
前言(建议一阅)
确实,就接触一套新的开发范式来说,阅读官方文档一定是最佳方式。
但如果那些晦涩的名词,事先用人话翻译一遍,想必学习成本会下降很多。
所以这套专辑更像一部指南,不会涉及很多细节之处,也不会逐个解释文档中的示例code。只会结合我们更为熟悉的领域,进行比对讲解,通过联想的方式提升学习效率。
我在每一处需要衔接文档阅读的地方都做了超链接,建议读者朋友在每阅读完一小节后,都点击超链接进入文档,做一些更细致的了解。
最后,希望这套专辑,能够起到抛砖引玉的效果,实实在在的帮助到每一位读者朋友。
重点概念介绍
环境
作为前端开发者,一定对webpack
中的mode
不陌生。
而在node
环境中,有一个全局变量proccess
。我们通常会将mode
的值挂载到process.env.NODE_ENV
中,结合config
用以区分dev
和build
环境。
而这里的环境,就可以结合webpack
中的mode
来进行理解。
小程序开发者工具中,提供了最多两个环境,我们可以使用其中一个环境当作dev
使用,另一个当作build
使用。
数据库
小程序云开发中的的数据库,是非关系型数据库。
熟悉mongodb
的朋友,应该能够很快适应这套模式下的库表的设计及操作。
而擅长关系型数据库的朋友,则可以参照mysql
理解,文档中有很好的说明。
存储
如上图所示,存储其实完全可以理解为一个oss
或者图床
,用来存放一些文件资源。
例如用户上传的图片,视频,PDF等。
当然你也可以使用自己或三方的存储空间,不过结合微信的api,存储操作会相对省心一些。
云函数
每一个云函数,都可以理解为一个接口地址
。
在常见开发流程中,前端开发者负责页面交互及接口调用,服务端开发者呢,负责编写接口,对数据库中的数据及文件读写操作。
而云函数,则赋予了前端开发者涉足服务端的能力。
云开发项目结构说明
project.config.json
和project.private.config.json
这两个文件都属于是配置文件
,可以理解为用json
形式描述了一个小程序项目
在小程序开发者工具中做了哪些配置;
例如:
{
...,
"setting": {
"es6": true // 对应项目是否启用ES6转ES5,如下图所示,如果我们关闭将JS编译成ES5,那此值将变为false
},
...
}
再例如:
{
"miniprogramRoot": "miniprogram/", // 指定前端项目目录,和不使用云函数的小程序项目一样
"cloudfunctionRoot": "cloudfunctions/", // 指定云函数目录
...
}
这里就是指定了哪个目录里的内容是云函数,哪个目录里的内容是小程序前端
。
cloudfunctions
此目录存放所有云函数,可以理解为小程序开发者工具已经内置了node
环境,并且已经使用Koa
起好了服务。
我们只需要在这里创建云函数,就可以使用js语法
实现连接数据库并对数据库做一些增删改查的操作,从而进行服务端的开发工作。
此项配置可以在上述project.config.json
中进行修改,重新指定作为云函数存放的目录。
miniprogram
若我们在创建项目时,不使用云开发,那这个目录其实就是项目根目录。
故此目录完全可以理解为小程序前端
项目目录。
假如结合vue-cli
架设出来的项目进行理解,此目录下的pages
目录,一般用于存放页面组件,而components
目录则作为自定义组件存放目录。
本篇总结
对比传统开发流程,我们可以理解到云开发其实就是一个前后端分离项目。
miniprogram
目录相当于前端项目。
cloudfunctions
目录相当于一个使用node
+Koa
跑起来的服务端项目。
两个项目可以通过微信小程序暴漏的wx.cloudAPI
进行请求通信(类似axios
,后续补充详解)。