前端学习

微信小程序学习笔记

2018-07-16  本文已影响8人  LoveY34

一. 微信小程序的项目结构

1. .json 后缀的 JSON 配置文件
1.1 小程序配置 app.json

app.json是对当前小程序的全局配置,包括小程序的所有页面路径、界面表现、网络超时、底部tab等,常见的配置关键字如下,更多的配置见小程序配置app.json

  • pages字段 —— 用于描述当前小程序所有页面路径,这是为了让微信客户端知道当前你的小程序页面定义在哪个目录,数组的第一项代表小程序的初始页面。小程序中新增/减少页面,都需要对 pages 数组进行修改。
  • window字段 —— 小程序所有页面的顶部背景颜色,文字颜色定义在这里的。
1.2 工具配置 project.config.json

开发者在开发工具上做的个性化配置都会被记录在这个.json文件中,导入一个工程时,工具会根据这个文件设置对应的个性化设置。文件中的key值对应的作用还有待查询。

1.3 页面配置 page.json

每个页面的个性化配置信息都存放在页面对应的.json文件中,配置内容和app.json中key值为window一样,page.json中的配置项会覆盖app.jsonwindow的配置项,更多的配置见小程序配置app.json

2. .wxml 后缀的页面结构文件

类似于.html文件,由标签、属性等构成,不一样的地方如下:

3. .wxss 后缀的页面样式文件

.wxsscss的大部分特性,同时.wxss也做了扩展和修改,详细的.wxss

4. .js 后缀的页面交互逻辑

响应用户交互、逻辑代码都存放在.js中。同时微信还提供了很多API,可以让开发者可以很方便的调用起微信提供的功能,如获取用户信息,本地存储,支付功能等,更详细的API文档.

5. 小程序文件结构

小程序包含一个描述整体程序的 app多个描述各自页面的 page

5.1 app文件结构
5.2 page文件结构

二. 微信小程序的能力

1. 小程序启动

微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地,紧接着通过 app.jsonpages 字段就可以知道你当前小程序的所有页面路径,而写在 pages 字段的第一个页面就是这个小程序的首页(打开小程序看到的第一个页面)

2. 小程序的页面加载

微信客户端会先根据 page.json 配置生成一个界面,顶部的颜色和文字你都可以在这个 json 文件里边定义好。紧接着客户端就会装载这个页面的 WXML 结构和 WXSS 样式。最后客户端会装载 page.js。

3. 小程序的注册

App() 函数用来注册一个小程序。接受一个 object 参数,其指定小程序的生命周期函数(如下)等。此外开发者还可以添加任意的函数或数据到 Object 参数中,用this可以访问。

全局的getApp()函数可以用来获取到小程序实例,但是需要注意:

4. 小程序页面注册

Page()函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。

4.1 初始数据
Page({
  data: {
    text: 'init data',
    array: [{msg: '1'}, {msg: '2'}]
  }
})
4.2 生命周期
4.3 页面相关事件处理函数

三. 微信小程序的页面路由

框架以栈的形式维护了当前的所有页面。 当发生路由切换的时候,页面栈的表现如下:

路由方式 页面栈表现
初始化 新页面入栈
打开新页面 新页面入栈
页面重定向 当前页面出栈,新页面入栈
页面返回 页面不断出栈,直到目标返回页
Tab 切换 页面全部出栈,只留下新的 Tab 页面
重加载 页面全部出栈,只留下新的页面

四. 微信小程序模块化

可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过module.exports 或者 exports 才能对外暴露接口。(推荐使用module.exports暴露模块接口),​在需要使用这些模块的文件中,使用 require(path)将公共代码引入(require 暂时不支持绝对路径)。

// common.js
function sayHello(name) {
  console.log(`Hello ${name} !`)
}
function sayGoodbye(name) {
  console.log(`Goodbye ${name} !`)
}

module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye

// page.js
var common = require('common.js')
Page({
  helloMINA: function() {
    common.sayHello('MINA')
  },
  goodbyeMINA: function() {
    common.sayGoodbye('MINA')
  }
})
上一篇下一篇

猜你喜欢

热点阅读