3.1 微信开发者工具
前往 开发者工具下载页面 (https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html),根据自己的操作系统下载对应的安装包进行安装,有关开发者工具更详细的介绍可以查看 《开发者工具介绍》(https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html) 。
打开小程序开发者工具,用微信扫码登录开发者工具,准备开发你的第一个小程序吧!
3.2 第一行代码
新建项目选择小程序项目,选择代码存放的硬盘路径,填入刚刚申请到的小程序的 AppID,给你的项目起一个好听的名字,最后,点击 “创建项目” (注意: 你要选择一个空的目录才会有这个选项),点击确定,你就得到了你的第一个小程序了,点击顶部菜单编译就可以在微信开发者工具中预览你的第一个小程序。
这是开发者工具自动生成HelloWorld演示程序,接下来我们来看一下它的主要代码并预览一下这个小程序的效果。
index.wxml
1 <view class="container">
2 <view class="userinfo">
3 <button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
4 <block wx:else>
5 <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
6 <text class="userinfo-nickname">{{userInfo.nickName}}</text>
7 </block>
8 </view>
9 <view class="usermotto">
10 <text class="user-motto">{{motto}}</text>
11 </view>
12 </view>
有没有很熟悉?貌似html?
可以这样理解,在wxml中的view可以理解为html中的div,代码中的“wx:if”用来做逻辑判断,如果wx:if内的值成立就渲染并显示,否则不进行渲染显示。
你可以像写网页一样写小程序,只不过换成了wxml的标签规范,多写写也就熟悉了。
index.js
1 //获取应用实例
2 const app = getApp()
3
4 Page({
5 data: {
6 motto: 'Hello World',
7 userInfo: {},
8 hasUserInfo: false,
9 canIUse: wx.canIUse('button.open-type.getUserInfo')
10 },
11 //事件处理函数
12 bindViewTap: function() {
13 wx.navigateTo({
14 url: '../logs/logs'
15 })
16 },
17 onLoad: function () {
18 if (app.globalData.userInfo) {
19 this.setData({
20 userInfo: app.globalData.userInfo,
21 hasUserInfo: true
22 })
23 } else if (this.data.canIUse){
24 // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
25 // 所以此处加入 callback 以防止这种情况
26 app.userInfoReadyCallback = res => {
27 this.setData({
28 userInfo: res.userInfo,
29 hasUserInfo: true
30 })
31 }
32 } else {
33 // 在没有 open-type=getUserInfo 版本的兼容处理
34 wx.getUserInfo({
35 success: res => {
36 app.globalData.userInfo = res.userInfo
37 this.setData({
38 userInfo: res.userInfo,
39 hasUserInfo: true
40 })
41 }
42 })
43 }
44 },
45 getUserInfo: function(e) {
46 console.log(e)
47 app.globalData.userInfo = e.detail.userInfo
48 this.setData({
49 userInfo: e.detail.userInfo,
50 hasUserInfo: true
51 })
52 }
53 })
js还是那个js,原来怎样写现在还怎样写。你可以多了解一下微信小程序的几个关键的生命周期函数。
下图说明了页面 Page 实例的生命周期。
预览效果
点击工具上的编译按钮,可以在工具的左侧模拟器界面看到这个小程序的表现,也可以点击预览按钮,通过微信的扫一扫在手机上体验你的第一个小程序。
通过这个章节,你已经成功创建了你的第一个小程序,并且在微信客户端上体验到它流畅的表现。