小程序模板网

疯狂早茶微信小程序基础篇《三》:index 页面解析,logs页面解析 ... ...

2018-03-28 战兢兢
第一部分:index 页面解析

这边教程主要对默认生成的index 页面进行讲解。在之前的教程中有写道,每一个页面都包含.js(处理逻辑),.wxml(描述页面内容),.wxss(配置页面样式)三个文件,index 页面也是如此。

讲解之前先上图


index页面的内容不多,只有一个用户头像,用户姓名,和一个"Hello World",首先来看看index.wxml的内容

<!--index.wxml-->
<view class="container">
  <view  bindtap="bindViewTap" class="userinfo">
    <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
    <text class="userinfo-nickname">{{userInfo.nickName}}</text>
  </view>
  <view class="usermotto">
    <text class="user-motto">{{motto}}</text>
  </view>
</view>

该页面的层级结构比较简单,三个view标签,一个image以及两个text标签,其中view为容器标签,image用来显示用户头像,第一个text用来显示用户昵称,第二个text则是"Hello World"

可以看到页面描述文件中绑定了几个变量,分别是第二个view标签的 bindtap="bindViewTap",image标签的src="{{userInfo.avatarUrl}} 以及两个text标签的内容文本。那么这些变量定义在哪里呢,答案就在index.js中

//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.js代码定义了Page对象,该对象中定义了index.wxml绑定的变量,其中onLoad方法会在页面加载时被调用,该方法会调用app对象的getUserInfo方法来获取用户信息并赋值给userInfo属性,这样界面就可以显示用户头像和昵称了。而"Hello World"的显示则是由motto属性直接指定。

Page对象还定义了bindViewTap方法,该方法通过调用wx.navigateTo导航到logs页面。关于页面导航的更多内容将在后面的教程中讲解。在该例子中,当用户点击用户头像和昵称的视图区域时,程序便会显示logs页面。

最后简单看下index.wxss

/**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.wxml中使用到的样式选择器,这部分比简单,在这里就不多做解释了。


第二部分:logs页面解析

老规矩先上图

该页面包含返回按钮(用于返回index页面),页面title和程序启动日志列表。
和index页面相比,logs页面多了一个logs.json文件,来配置页面title的内容


	
{
    "navigationBarTitleText": "查看启动日志"
}
 

更多配置项可以参考配置 小程序


	
<!--logs.wxml-->
<view class="container log-list">
  <block wx:for="{{logs}}" wx:for-item="log">
    <text class="log-item">{{index + 1}}. {{log}}</text>
  </block>
</view>
 

在logs.wxml中,定义了三个标签,分别为view,block和text,其中view标签为容器,block用于绑定logs数组,而text标签用于显示每一条log。wx:for和wx:for-item是小程序框提供的列表绑定语法,更多详情请参考列表渲染


	
//logs.js
var util = require('../../utils/util.js')
Page({
  data: {
    logs: []
  },
  onLoad: function () {
    this.setData({
      logs: (wx.getStorageSync('logs') || []).map(function (log) {
        return util.formatTime(new Date(log))
      })
    })
  }
})

logs.js定义了logs数组,并在onLoad方法中从本地缓存中获取程序启动时间数据,之后调用数组的map方法来将时间格式化为字符串


	
.log-list {
  display: flex;
  flex-direction: column;
  padding: 40rpx;
}
.log-item {
  margin: 10rpx;
}

最后仍然是logs.wxss,对页面样式进行控制。

到此为止,默认生成程序的解析部分就结束了。这个解析过程是为了对微信小程序有个总体上的理解,所以很多地方并没有深入。在后面的教程中,我会继续讲解微信小程序开发的各个方面。

 


本文地址:https://www.eyoucms.com/wxmini/doc/course/22909.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询