0 前言
这是我学习微信官方小程序源码的第一篇文章,看了下源码目录,必须要写app啊。
这里做个定义,我说的学习app指的是分别学习app.js、app.json、app.wxss文件,学习其他组件时,还会有.wxml文件。在文章的开始时,我会写学习本节过程中的一些通用知识,最后会写学习过程中的疑问,希望路过大神答疑解惑。
点开app.js一看,吓到了,好复杂啊!!!那也的啃……
1 通识
- 关于.js文件中单引号和双引号问题:使用时单引号和双引号都不会报错,但在源码中.js文件中字符串都是用的单引号,决定保持一致。
- 在.json文件中,属性名用双引号,字符串值也用双引号。
- console.log(参数1, 参数2),参数1是一个字符串,对参数2的一个说明。参数2是在console调试面板上的显示值。
- let与const的区别:let声明的变量可以改变,值和类型都可以改变,没有限制。const声明的变量不得改变值,一旦声明变量,就必须立即初始化,不能留到以后赋值。
2 app.js
const config = require('./config') //引入配置文件
,配置文件中包含云端服务器的一些配置参数。- 暂时不知道
global.isDemo = true
是什么用途,估计其他页面使用。 wx.cloud.init({
小程序端,调用云开发API前的初始化,env为云开发环境ID,traceUser是否在将用户访问记录到用户管理中,在控制台中可见const self = this
,this的问题比较复杂,对于我这初学难度比较大,理解着困难,上网查说this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象。在这个文件里,this就是指App()。globalData: {
中定义了是否登录的状态变量、及openid的值。
3 app.json
-
用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。
- 文件中各参数的设置在开发文档中有详细的说明
- 很多参数的值是颜色,需要填写十六进制颜色值,可以参考官方设计规范中给出的几个视觉规范,或者W3school查找需求。
"workers": "workers",
使用 Worker 处理多线程任务"style": "v2",
v2表示新版的组件样式。
4 app.wxss
app.wxss中的样式在具体使用页面详细研究。
5 sitemap.json
这是一个与app同级别的配置文件,配置小程序页面是否允许微信索引。如果没有 sitemap.json ,则默认为所有页面都允许被索引。目前,还不了解这一功能的作用,希望随着学习的深入能知道其作用。
6 疑惑
- 第1行require(’./config’)中,我知道…/是上一层,为什么用./congfig,./是什么意思,明明app.js与config.js在同一层?
if (!wx.cloud)
,判断基础库是否有云函数功能,我在开发工具中把调试基础库改为2.2.3以下,并没有执行console.error('请使用 2.2.3 或以上的基础库以使用云能力')
。但报了个错误:VM1513:1 page/weui/example/button/button has not been declared in app.json.
算是个疑问。getUserOpenId(callback) {和getUserOpenIdViaCloud() {
暂未发现哪个页面调用这两个函数,此处暂时不分析。
写的第一个学习笔记文章,难度有点大,感觉学习的也不是很透彻,思考了很久如何能达到更好的效果,暂定这种模式吧。明天从基础view开始。
三万!胡了。
会开发小程序么类似这样的