小程序 便查手册

小程序巧应用,微信小程序开发实战

配置

app.json

  • pages -> 所有的页面
  • window -> 窗口的属性
    • "navigtionBarBackgroundColor":"#00000" ->导航栏背景颜色
    • "navgationBarTextStyle":"black/white" -> 导航栏标题颜色
    • "navgationBarTitleText":"标题" -> 导航栏文字
    • "backgroundColor":"#ffffff" -> 窗口的背景色
    • "backgroundTextStyle":"dark/light" -> 下拉背景字体,loading的样式
    • "enablePullDownRefresh":"false" -> 是否下拉刷新
  • tabBar -> bottomNav
    • 是一个list列表,最少2个,最多5个."tabBar": {"list": [{"pagePath": "pages/index/index", "text": "首页"}, {"pagePath": "pages/logs/logs", "text": "日志"}] },
    • list对象中支持 pagePath,text,iconPath,selectedIconPath(选中icon的图片路径)
  • "debug" -> true(默认是false)
  • networkTimeout ->
    • "request":30000 -> wx.request超时时间
    • "connectSocket":30000 -> wx.connectSocket 超时时间
    • "uploadFile":30000 -> wx.uploadFile超时时间
    • "downloadFile":3000 -> wx.downloadFile 超时时间

逻辑层

app.js

  • app({ function,function })

  • onLaunch -> 触发一次,初始化

  • onShow -> 启动/后台切换到前台 会触发onShow

  • onHide -> 进入后台

  • onError ->

  • 可以添加任意函数,用this可以访问(在app()中this可以拿到app实例)

  • 全局的getApp()

  • globalData:{} 全局参数 (类型Object)

page.js

  • page({ data:{},xx:funcation{} })

  • data -> 页面初始数据 (类型Object)

  • onLoad -> 生命周期-页面加载

    • options可以获取wx.navigateTowx.redirectTo以及中的query
  • onReady -> 生命周期-初次渲染完成

    • wx.setNavigationBarTitleonReady之后调用
  • onShow -> 生命周期-页面显示

  • onHide -> 生命周期-页面隐藏

    • navigateTo或者底部进行tab切换时调用
  • onUnload -> 生命周期-页面卸载

  • onPullDownRefreash -> 监听用户下拉

    • 需要在page.json中开启enablePullDownRefresh
  • onReachBottom -> 页面上拉触底事件的处理函数

  • onShareAppMessage -> 点击右上角分享

    • 只有定义了此事件,右上角才会显示分享
    • 需要return一个Object return{}
  • 可以添加任意函数,用this可以访问

  • 事件处理函数

    • page({ viewTap:funcation(){console.loag('somethin')} })
  • getCurrentPage() 获取当前页面栈的实例,返回的是一个数组

    • 第一个是首页
    • 最后一个是当前页面
  • 路由相关

    • wx.navigateTo(Object) 保留当前页面,跳转到应用内的某个页面
    • wx.redirectTo(onject)关闭当前页面,跳转到应用内的某个页面
    • wx.navigateBack()关闭当前页面
  • 在page()中使用setData函数将数据从逻辑层发送到视图层,同时改变对应的this.data的值

    • this是包含它的函数作为方法被调用时所属的对象,在小程序中一般指调用页面
    • 我的理解是在data中定义value,在中引用value,通过bindtap绑定方法,然后可以通过setData改变value的值,进而改变,view中的value
    • 上面这条未测试
  • 公共代码可以抽出来,通过module.exports={xx:funcation}暴露出来才能使用 var common = require('common.js')

微信原生Api

下面有单独的模块来展示

微信原生API有八大类,网络/媒体/文件.数据缓存/位置/设备/界面/微信开发接口

视图层

.wxml 与 .wxss结合

WXML

数据绑定

数据绑定 {{message}} Page({ data:{message:'Hello'} })

  • 简单绑定
    • 尖括号外面:使用Mustache语法{{}}将变量包起来
    • 组件属性(尖括号里面):需要在双引号之内
    • 控制属性(尖括号里面):例如下面的事件绑定中if后面的
  • 运算
    • 三元运算符
    • 算数,可以做正常的运算
    • 逻辑判断
    • 字符串拼接
  • 组合
    • 数组
    • 对象
    • 扩展运算符,可以将Object展开显示
列表渲染

列表渲染 {{item}} Page({ data:{array:[1,2,3,4,5]}})

  • 也可以使用属性
  • wx.key -> 列表中的位置会动态改变,或者有新的项目添加到列表中,希望列表中的项目保持自己的特征和状态 233页中有示例代码
条件渲染

条件渲染 WEBVIEW APP MINA Page({data:{view:'MINA'}})

  • 可以包裹多个组件,在属性中添加条件判断.不是一个组件,是一个包装元素,在页面中不做任何渲染,只是接受控制属性
  • wx:if与hidden的区别 : wx:if -> 是惰性的,如果初始渲染条件是false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染. hidden初始就会被渲染. 频繁切换判断情景下用hidden,否则wx:if
模板

模板