微信小程序基础入门 (2)

项目配置声明文件(指定项目的一些信息,比如导航栏样式颜色等等)

{ // 当前程序是由哪些页面组成的(第一项默认为初始页面) // 所有使用到的组件或页面都必须在此体现 // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#pages "pages": [ ... ], // 应用程序窗口设置 // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#window "window": { ... }, // 应用导航栏设置 // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#tabBar "tabBar": { ... }, // 网络超时设置 // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#networkTimeout "networkTimeout": {}, // 是否在控制台输出调试信息 // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#debug "debug": true } [page-name].json

用于指定特定页面工作时,window的设置:

{ // 导航条背景色 "navigationBarBackgroundColor": "#35495e", // 导航条前景色(只能是white/black) "navigationBarTextStyle": "white", // 导航条文本 "navigationBarTitleText": "电影 « 豆瓣", // 窗口背景颜色 "backgroundColor": "#fff", // 窗口前景色 "backgroundTextStyle": "dark", // 是否开启下拉刷新 "enablePullDownRefresh": true } 逻辑层分析 应用程序逻辑app.js

app.js作为项目主入口文件,用于创建应用程序对象

// App函数是一个全局函数,用于创建应用程序对象 App({ // ========== 全局数据对象(可以整个应用程序共享) ========== globalData: { ... }, // ========== 应用程序全局方法 ========== method1 (p1, p2) { ... }, method2 (p1, p2) { ... }, // ========== 生命周期方法 ========== // 应用程序启动时触发一次 onLaunch () { ... }, // 当应用程序进入前台显示状态时触发 onShow () { ... }, // 当应用程序进入后台状态时触发 onHide () { ... } })

也就是说,当应用程序启动时会自动执行项目目录下的app.js文件。

在app.js中通过调用全局App([option])方法创建一个应用程序实例。

其中通过参数指定的一些特定的方法,会在特定的执行时机去执行,也就是说通常所说的生命周期事件方法。

属性 类型 描述 触发时机
onLaunch   Function   生命周期函数--监听小程序初始化   当小程序初始化完成时,会触发 onLaunch(全局只触发一次)  
onShow   Function   生命周期函数--监听小程序显示   当小程序启动,或从后台进入前台显示,会触发 onShow  
onHide   Function   生命周期函数--监听小程序隐藏   当小程序从前台进入后台,会触发 onHide  

也可以定义任意其他的对象成员(例如:方法和属性),这些成员可以在内部直接使用,或者外部通过获取app对象调用:

属性 类型 描述
其他   Any   开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问,一般用于存放业务逻辑配置,比如:API地址  

app.js

App({ data1: '123', data2: { message: 'hello world' }, api: { list: 'https://github.com/zce/', detail: 'https://github.com/zce/', }, foo () { return 'bar' } })

other.js

// getApp 也是全局函数,可以在任意地方调用,用于获取全局应用程序实例对象 var app = getApp() console.log(app.data1) console.log(app.data2) console.log(app.foo()) 页面逻辑[page-name].js

[page-name].js是一个页面的重要组成部分,用于创建页面对象

// 获取全局应用程序对象 const app = getApp() // Page也是一个全局函数,用来创建页面对象 Page({ // ========== 页面数据对象(可以暴露到视图中,完成数据绑定) ========== data: { ... }, // ========== 页面方法(可以用于抽象一些公共的行为,例如加载数据,也可以用于定义事件处理函数) ========== method1 (p1, p2) { ... }, method2 (p1, p2) { ... }, // ========== 生命周期方法 ========== // 页面加载触发 onLoad () { ... } ... })

在应用程序执行到当前页面时,会执行当前页面下对应的[page-name].js文件。
在[page-name].js中通过调用全局Page([option])方法创建一个页面实例。

Page([option])方法[option]参数说明 属性 类型 描述
data   Object   页面的初始数据  
onLoad   Function   生命周期函数--监听页面加载  
onReady   Function   生命周期函数--监听页面初次渲染完成  
onShow   Function   生命周期函数--监听页面显示  
onHide   Function   生命周期函数--监听页面隐藏  
onUnload   Function   生命周期函数--监听页面卸载  
onPullDownRefreash   Function   页面相关事件处理函数--监听用户下拉动作  
其他   Any   开发者可以添加任意的函数或数据到 object 参数中,用 this 可以访问  
视图层分析 [page-name].wxml页面结构

WXML(WeiXin Markup Language)是MINA框架设计的一套标签语言,基于XML。

结合一些基础组件、事件系统、模板数据绑定,可以构建出页面的结构。

简单来说:wxml ≈ xml + 事件系统 + 模板引擎

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsszpy.html