1.1 前言叙述:

(1)小程序没有DOM对象,一切基于组件化

(2)微信小程序的四个基本文件:

​ a. *.js

​ b. *.wxml —–> view结构 ——> html

​ c. *.wxss —–> view 样式——-> css

​ d. *.json ——> view 数据 ——> json文件

(3)flex布局解析:

https://www.cnblogs.com/echolun/p/11299460.html

(4)移动端适配:

1.物理像素

​ 屏幕的分辨率;设备显示控制的最小单元,可以把物理像素看成对应的像素点。

2.设备独立像素/css像素

3.dpr比 & DPI & PPI

(5)小程序的页面配置:

https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#tabBar

tabBar 的第一项必须是所有页面的主页,pages中单个页面的优先级高于主页面

(6)小程序的双线程模型:

界面渲染过程

界面渲染的整体流程

(7)微信小程序的启动流程:

首先会加载解析 app.json文件,然后解析app.js文件并注册App()并执行App的生命周期函数;然后会加载注册自定义组件,最后会加载解析首页的page.json文件,由渲染层加载渲染page.wxml文件然后再解析page.js文件,注册Page()并执行Page的生命周期。

(8)微信小程序的生命周期函数:

App对象常用的生命周期函数:

onLaunch:小程序初始化完成时会触发的函数,一般会先获取用户的相关身份信息[wx.getUserInfo(res)]。(onLaunch仅仅会执行一次);

onShow:小程序初始化完毕后触发的函数,可以通过自带的options参数来判断小程序的进入场景。(onShow可能会执行多次);

onHide:小程序关闭后触发的函数

onError:小程序发生错误时触发

获取用户信息的方式:

  1. wx.getUserInfo() ——–即将废弃的接口;
1
2
3
4
5
wx.getUserInfo({
success(res){
console.log(res);
}
})
  1. button组件 ——-将open-type修改为getUserInfo,并且绑定bindgetuserInfo事件去获取;这种情况下只有用户去点击小程序才会获取用户的信息进行授权;
1
2
3
4
5
<button size="mini" open-type="getUserInfo" bindgetuserinfo="getUser">获取用户信息</button>

getUser(res){
console.log(res);
}
  1. 使用open-data 组件来展示用户信息;

https://developers.weixin.qq.com/miniprogram/dev/component/open-data.html

注册App时我们一般会做如下事情:

  1. 判断小程序的进入场景———onShow方法的自带参数res中的scene

  2. 监听生命周期函数,在生命周期中执行对应的业务逻辑,比如在某个生命周期函数中获取到用户的身份信息;

  3. 因为App()实例只有一个,并且是全局共享的(单例对象),所以我们可以将一些共享数据放在App()中,然后在其它页面通过以下方式获取到数据:

    1
    2
    const app=getApp()   //获取App产生的实例对象
    console.log(app.UserList);

Page对象常用的生命周期函数:

  1. onLoad() ——-> 页面被加载出来时触发(发送网络请求获取数据、通过setData动态地设置变量的值)

  1. onShow() ——–> 页面显示出来时(当页面被关闭后重新打开时会重新调用)

  2. onReady() ——-> 页面初次渲染完成时

  3. onHide() ——–> 页面被隐藏起来时会触发

  4. onUnload() —–>页面卸载

注册Page时我们一般会做如下事情:

  1. 初始化数据 ——- data;
  2. 监听页面的生命周期函数 ——onLoad、onShow、onReady、onHide;
  3. 监听wxml中的事件 —–绑定对应的事件函数;
  4. 监听页面的其它事件,如下:

https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html