微信小程序学习笔记(2)----HelloWorld分析

写在前面 在学习HelloWorld之前首先需要破解微信开发工具,前面一篇有相关破解教程:http://blog.csdn.net/whzhaochao/article/details/52691550
IDE结构 微信小程序学习笔记(2)----HelloWorld分析
文章图片

上图是微信开发工具自动生成的一个HelloWorld,微信小程序的开发、调试都在这个工具中完成,相比于eclipse、Idea之类的Idea,小程序显示功能比较少,没多少菜单。
编辑 编辑菜单中是存放代码的,可以创建文件及文件夹、编辑代码,还有代码提示功能虽然不是很强大。值得注意的是修改代码后,文件上会有一个绿色小点,保存后会消失,修改代码需要编译后才能生效。
调试 【微信小程序学习笔记(2)----HelloWorld分析】微信小程序学习笔记(2)----HelloWorld分析
文章图片

调试菜单主要是查看代码运行效果,微信小程序应该只能在微信和这个开发工具中运行了。这个调试窗口功能和chrome的调试窗有点区别,Console、Soruce、Network都和chrome的大体一样,
Storage用于显示当前项目的使用 wx.setStorage 或者 wx.setStorageSync 后的数据存储情况。
Appdata 用于显示当前项目当前时刻 appdata 具体数据,实时地反馈项目数据情况,可以在此处编辑数据,并及时地反馈到界面上。
Wxml这个和Chrome的Elemnets功能比较相似,可以看到页面的HTML结果和CSS样式,Chrome中的事件、盒子模型和其它都是没有的
项目 微信小程序学习笔记(2)----HelloWorld分析
文章图片

这个要是用户发布小程序和真机预览用的,可惜账号没有权限,无法真实体验一下
代码结构 app.wxss

/**app.wxss**/ .container { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 200rpx 0; box-sizing: border-box; }

这个app.wxss可以看到是全局的css文件,在这个文件个定义的css样式,其它所有页面都可以使用
app.json
{ "pages":[ "pages/index/index", "pages/logs/logs" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle":"black" } }

app.json是小程序的全局配置文件,这里的配置会传递给其它所有页面,具体有哪些配置,每个配置的作用可以阅读官方文档https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html?t=1475052047016
app.js
//app.js App({ onLaunch: function () { //调用API从本地缓存中获取数据 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) }, getUserInfo:function(cb){ var that = this if(this.globalData.userInfo){ typeof cb == "function" && cb(this.globalData.userInfo) }else{ //调用登录接口 wx.login({ success: function () { wx.getUserInfo({ success: function (res) { that.globalData.userInfo = res.userInfo typeof cb == "function" && cb(that.globalData.userInfo) } }) } }) } }, globalData:{ userInfo:null } })

app.js 可以看作是小程序的生命周期文件,具体说明参看官方文档
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/app.html?t=1475052055990
utils/util.js
function formatTime(date) { var year = date.getFullYear() var month = date.getMonth() + 1 var day = date.getDate()var hour = date.getHours() var minute = date.getMinutes() var second = date.getSeconds()return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') }function formatNumber(n) { n = n.toString() return n[1] ? n : '0' + n }module.exports = { formatTime: formatTime }

util.js是自动生成的时间格式化工具在其它页面可以通过
var util = require('../../utils/util.js')

引用
index.wxml index.js index.wxss
{{userInfo.nickName}} {{motto}}

/**index.wxss**/ .userinfo { display: flex; flex-direction: column; align-items: center; }.userinfo-avatar { width: 128rpx; height: 128rpx; margin: 20rpx; border-radius: 50%; }.userinfo-nickname { color: #aaa; }.usermotto { margin-top: 200px; }

//index.js //获取应用实例 var app = getApp() Page({ data: { motto: 'Hello World', userInfo: {} }, //事件处理函数 bindViewTap: function() { wx.navigateTo({ url: '../logs/logs' }) }, onLoad: function () { console.log('onLoad') var that = this //调用应用实例的方法获取全局数据 app.getUserInfo(function(userInfo){ //更新数据 that.setData({ userInfo:userInfo }) }) } })

index.wxml可看作是一个页面的视图文件,可以看作是HTML文件
index.wxss 可以看作是页面的样式文件,可以看作是css文件
index.js 可以看到是页面的生命周期文件,主要是页面生命周期、事件回调、业务处理等
值得注意
index.wxss和index.js 在index.wxml中不需要手动导入,通过文件名匹配,所以在建立文件时应尽量按个规则来
logs 这个目录下的和index下的一样的结果,只不过是显示日志文件,可以删除的

    推荐阅读