微信小程序学习笔记(二)

目录结构

小程序的基本目录结构如图(1)所示:

这里写图片描述

图(1)

pages

pages目录下,每个文件夹代表了一个页面的所有配置,一般情况下每个文件夹下都有四个文件,并且每个文件名都必须和文件夹名相同,只有后缀不同。
- .js文件用来处理每个页面的方法,和我们熟知的js文件作用一样
代码示例:
//index.js
//获取应用实例

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

其中data:{}是本页面可以用的数据, 页面上需要调用的方法都必须写到Page({})中。
- .json文件用来管理页面的配置, 具体配置项如下:

表(1)

对象类型默认值描述
navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如”#000000”
navigationBarTextStyleStringwhite导航栏标题颜色,仅支持 black/white
navigationBarTitleTextString导航栏标题文字内容
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStyleStringdark下拉背景字体、loading 图的样式,仅支持 dark/light
enablePullDownRefreshBooleanfalse是否开启下拉刷新(注:这里不设置为true,就无法下拉刷新,backgroundTextStyle的设置也就没有意义

代码示例(注:.json中不能有注释):

 {
    "navigationBarTitleText": "demo"
 }
  • .wxml文件和html的作用一样,用来编辑页面内容。
  • .wxss的作用和css一样,用来存放class样式。(注:非必须的,可以不要

typings

系统自动生成的,不用管了。

utils

系统自动生成的,不用管了。

app.js

全局js, 整个APP中都需要使用的方法和变量都可以定义到App({})中,示例代码:

//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.json

我们通过app.json来配置项目文件的路径、窗口的表现、还有配置多个切换页等。

表(2)

配置项类型必填描述
pagesArray设置页面路径
windowObject设置默认页面的窗口表现(如果pages下的页面.json文件没有相关设置,就以app.json中window下的设置为准)
tabBarObject设置底部tab的表现
networkTimeoutObject设置网络超时时间
debugObject设置是否开启debug模式(发布时最好设置为false)

示例代码:

{
  "pages": [
    "pages/index/index",
    "pages/logs/logs",
    "pages/demo/demo"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle": "black",
    "enablePullDownRefresh": true
  },
  "tabBar": {
    "borderStyle": "white",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "text",
        "iconPath": "img/微信.png",
        "selectedIconPath": "img/微信.png"
      },
      {
        "pagePath": "pages/demo/demo",
        "text": "text",
        "iconPath": "img/微信.png",
        "selectedIconPath": "img/微信.png"
      }
    ]
  }
}

pages相关设置

app.json中的所有文件路径都不要后缀的,其中"pages": []中第一个文件路径将作为app的首页。

tabBar的相关配置

表(3)

对象类型必填默认值描述
colorHexColor标签上的文字默认颜色
selectedColorHexColor标签上的文字选中时的颜色
backgroundColorHexColor标签页的背景色
borderStyleStringblack标签条之上的框线颜色,仅支持black/white
listArray标签列表,最少必须要两个,最多5个
positionStringbottom可选值bottom、top

"list"中相关配置:

表(4)

对象类型必填描述
pagePathString页面路径,必须在pages中先定义
textString标签上按钮文字
iconPathString标签上icon图片路径,icon图片大小限制为40KB
selectedIconPathString标签选中时的icon图片路径,icon图片大小限制为40KB

这里写图片描述

图(2)

数据展示

数据的绑定

小程序支持数据的双向绑定,这点和angularJs差不多,使用也非常简单。
test.wxml代码:

<view>{{text}}</view>
<view>{{array[0].msg}}</view>

test.js中代码

Page({
  data:{
    text:"Page test",
    array:[{msg:'1'},{msg:'2'}]
  },
  onLoad:function(options){
    // 页面初始化 options为页面跳转所带来的参数
  },
  onReady:function(){
    // 页面渲染完成
  },
  onShow:function(){
    // 页面显示
  },
  onHide:function(){
    // 页面隐藏
  },
  onUnload:function(){
    // 页面关闭
  }
})

效果如图(3):
这里写图片描述

图(3)

数据循环

使用方式和angularJs的*ngFor几乎一样
test.wxml代码:

<view>{{text}}</view>
<view>{{array[0].msg}}</view>
<view wx:for="{{array2}}">{{item}}</view>

test.js中代码

Page({
  data:{
    text:"Page test",
    array:[{msg:'1'},{msg:'2'}],
    array2:[1,2,3,4,5]
  },
  onLoad:function(options){
    // 页面初始化 options为页面跳转所带来的参数
  },
  onReady:function(){
    // 页面渲染完成
  },
  onShow:function(){
    // 页面显示
  },
  onHide:function(){
    // 页面隐藏
  },
  onUnload:function(){
    // 页面关闭
  }
})

效果如图(4):
这里写图片描述

图(4)

if判断

wx:if和angularJs的*ngIf几乎一样,看来小程序开发团队借鉴了不少angular的东西。

test.wxml代码:

<view wx:if="{{view=='WEBVIEW'}}">WEBVIEW</view>
<view wx:elif="{{view=='APP'}}">APP</view>
<view wx:else="{{view=='MINA'}}">MINA</view>

test.js中代码

Page({
  data:{
    view:'MINA'
  },
  onLoad:function(options){
    // 页面初始化 options为页面跳转所带来的参数
  },
  onReady:function(){
    // 页面渲染完成
  },
  onShow:function(){
    // 页面显示
  },
  onHide:function(){
    // 页面隐藏
  },
  onUnload:function(){
    // 页面关闭
  }
})

效果如图(5):
这里写图片描述

图(5)

END

小程序的开发基础基本就这些了,下次开始讲主要的组件的使用吧。

同系列文章目录

微信小程序学习笔记(一)——小程序的快速搭建与入门
微信小程序学习笔记(三)——小程序简单组件的使用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值