002微信小程序示例源码学习之app
发布于 4 年前 作者 xiulandeng 2471 次浏览 来自 分享

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

  1. const config = require('./config') //引入配置文件,配置文件中包含云端服务器的一些配置参数。
  2. 暂时不知道global.isDemo = true是什么用途,估计其他页面使用。
  3. wx.cloud.init({ 小程序端,调用云开发API前的初始化,env为云开发环境ID,traceUser是否在将用户访问记录到用户管理中,在控制台中可见
  4. const self = this,this的问题比较复杂,对于我这初学难度比较大,理解着困难,上网查说this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象。在这个文件里,this就是指App()。
  5. globalData: {中定义了是否登录的状态变量、及openid的值。

3 app.json

用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。
  1. 文件中各参数的设置在开发文档中有详细的说明
  2. 很多参数的值是颜色,需要填写十六进制颜色值,可以参考官方设计规范中给出的几个视觉规范,或者W3school查找需求。
  3. "workers": "workers",使用 Worker 处理多线程任务
  4. "style": "v2",v2表示新版的组件样式。

4 app.wxss

app.wxss中的样式在具体使用页面详细研究。

5 sitemap.json

这是一个与app同级别的配置文件,配置小程序页面是否允许微信索引。如果没有 sitemap.json ,则默认为所有页面都允许被索引。目前,还不了解这一功能的作用,希望随着学习的深入能知道其作用。

6 疑惑

  1. 第1行require(’./config’)中,我知道…/是上一层,为什么用./congfig,./是什么意思,明明app.js与config.js在同一层?
  2. 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.算是个疑问。
  3. getUserOpenId(callback) {和getUserOpenIdViaCloud() {暂未发现哪个页面调用这两个函数,此处暂时不分析。

写的第一个学习笔记文章,难度有点大,感觉学习的也不是很透彻,思考了很久如何能达到更好的效果,暂定这种模式吧。明天从基础view开始。
三万!胡了。

回到顶部