1.4 实战1:Hello World
本节通过一个简单的测试小程序,实现一个输出Hello World消息的页面。
1.4.1 编写页面链接
打开前面创建的测试项目,在此项目的基础上,我们准备创建一个helloWorld页面。
在模拟器的下方,可以看到当前的页面地址和页面所携带的参数。该页面的路径为pages/index/index,那么文件就应当是pages→index中的index文件。在代码的编辑器中可以看出,似乎在这个名称为index的文件夹中包含了3个命名为index但后缀不同的文件,如图1-18所示。其中:
图1-18 开发小程序的文件结构
● 后缀为.wxml的文件是该页面的页面文件。
● 后缀为.wxss的文件是该页面的样式文件。
● 后缀为.js的文件是该页面的逻辑文件,也就是编写JavaScript代码的文件。
打开index.wxml,查看默认代码,如下所示。
<!--index.wxml--> <view class="container"> <view class="userinfo"> <button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo= "getUserInfo"> 获取头像昵称 </button> <block wx:else> <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image> <text class="userinfo-nickname">{{userInfo.nickName}}</text> </block> </view> <view class="usermotto"> <text class="user-motto">{{motto}}</text> </view> </view>
本文件的第1行,即在编辑器中显示为绿色的部分,是注释。也就是说,这类代码在程序中只是为了增加程序的可读性,并不会在程序中有任何作用。
第2行是小程序中最基本的一个元素:<view></view>。这个元素相当于HTML中的<div></div>元素,其指定的class属性的值container,是在index.wxss中命名的样式效果,可以打开index.wxss查看。
在这里,我们需要编写一个跳转的链接,跳转到之后要编写的helloWorld页面中。新增一个<view></view>元素,代码如下:
<view bindtap='bindMyViewTap'>点我跳转</view>
将上述代码加到任何地方都是可以的,只不过会出现在页面的不同区域,但不会影响效果。在上述代码中,<view></view>绑定了一个单击事件,而这个事件需要手动添加到index.js文件中。
注意:使用Ctrl+S键进行保存或手动单击编译按钮时都会引发保存和重新编译事件,即在左边的模拟器中可以看到小程序的最新效果。
接下来需要编写index.js文件。在bindViewTap方法的下面、onLoad方法的上面,增加如下代码。
…… // 事件处理函数 bindViewTap: function(){ wx.navigateTo({ url: '../logs/logs' }) }, // 用户单击“点我跳转”view bindMyViewTap:function(){ wx.navigateTo({ url: '/pages/index/helloWorld' }) }, onLoad: function(){ ……
这里使用了wx.navigateTo这个API进行页面跳转。使用Ctrl+S键保存,尝试单击,查看效果。此时在调试器中会报错,表示helloWorld页面不存在,如图1-19所示。那是因为这个页面还没有创建,下一节就介绍如何创建。
图1-19 调试器的报错
1.4.2 编写新页面内容
首先创建新页面。开发者工具提供了非常简单的方式,只需要在app.json中声明该页面,保存后就会自动为开发者生成这个页面的3个文件,只需要在app.js中修改pages数组的内容,如下所示。
{ "pages":[ "pages/index/index", "pages/logs/logs", "pages/index/helloWorld" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle":"black" } }
保存后开发者工具自动生成helloWorld页面。现在尝试在index页面单击链接,就会跳转至该页面,如图1-20所示。
图1-20 helloWorld页面
接下来,需要编写该页面的代码。打开helloWorld.wxml,编写一个简单的< text ></ text >元素,如下所示。
<!--pages/index/helloWorld.wxml--> <text>{{data}}</text>
上述代码指明了在文字元素中显示一个名为data的变量,而这个变量需要在helloWorld.js中声明,代码如下所示。
/** * 页面的初始数据 */ data: { data: 'Hello World' },
这样,一个完整的显示Hello World的页面就完成了,效果如图1-21所示。
图1-21 页面显示效果