})
页面
Page() 函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。
data 页面的初始数据,data 将会以 JSON 的形式由逻辑层传至渲染层,
所以其数据必须是可以转成 JSON 的格式:字符串,数字,布尔值,
对象,数组。
onLoad 生命周期函数--监听页面加载,只会调用一次,
可以在 onLoad 中获取打开当前页面所调用的 query 参数
onReady 生命周期函数--监听页面初次渲染完成
onShow 生命周期函数--监听页面显示
onHide 生命周期函数--监听页面隐藏
onUnload 生命周期函数--监听页面卸载
onPullDownRefresh 页面相关事件处理函数--监听用户下拉动作,下拉刷新
onReachBottom 页面上拉触底事件的处理函数
onShareAppMessage 用户点击右上角转发,点击转发按钮的时候会调用
此事件需要 return 一个 Object,用于自定义转发内容
onPageScroll 页面滚动触发事件的处理函数
其他 开发者可以添加任意的函数或数据到 object 参数(data)中,
在页面的函数中用 this 可以访问
对界面的设置如wx.setNavigationBarTitle请在onReady之后设置
...
onPageScroll: function() { // Do something when page scroll }, // Event handler. viewTap: function() { this.setData({ text: 'Set some data for updating view.' }, function() { // this is setData callback }) }, customData: { hi: 'MINA' }
onPullDownRefresh:需要在app.json的window选项中或页面配置中开启enablePullDownRefresh。
onReachBottom 可以在app.json的window选项中或页面配置中设置触发距离onReachBottomDistance。在触发距离内滑动期间,本事件只会被触发一次。
除了初始化数据和生命周期函数,Page 中还可以定义一些特殊的函数:事件处理函数。
<view bindtap="viewTap"> click me </view>
Page({ viewTap: function() { console.log('view tap') } })
setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。
  1. 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。
模块化
可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 module.exports 或者 exports 才能对外暴露接口。
推荐开发者采用 module.exports 来暴露模块接口
// common.js function sayHello(name) { console.log(`Hello ${name} !`) } function sayGoodbye(name) { console.log(`Goodbye ${name} !`) } module.exports.sayHello = sayHello exports.sayGoodbye = sayGoodbye
使用
var common = require('common.js') Page({ helloMINA: function() { common.sayHello('MINA') }, goodbyeMINA: function() { common.sayGoodbye('MINA') } })
 require 暂时不支持绝对路径

微信小程序 js逻辑的更多相关文章

  1. 微信小程序js学习心得体会

    微信小程序js学习心得体会 页面控制的bindtap和catchtap 用法,区别 <button id='123' data-userDate='100' bindtap='tabMessag ...

  2. 微信小程序开发---逻辑层(App Service)

    再说逻辑层之前,先说说微信小程序框架(MINA) 小程序开发框架的目标是通过尽可能简单.高效的方式让开发者可以在微信中开发具有原生APP体验的服务. 框架提供了自己的视图层描述语言WXML和WXSS, ...

  3. “微信小程序” js部分注解

    1.小程序不提供获取dom的操作,而是让我们直接将事件绑定写入到组件内.区别在于bind不阻止冒泡,而catch阻止冒泡. <view id="tapTest" bindta ...

  4. 微信小程序 JS动态修改样式

    微信小程序这个坑啊,js动态修改样式,我们并不能用js或者jq 轻轻松松一行代码搞定.或者用removeClass addClass 来修改样式. 以下是一种动态修改样式的方法,原理是绑定数据,然后动 ...

  5. [转]微信小程序登录逻辑梳理

    本文转自:http://www.jianshu.com/p/d9996cafdb31 官方文档 文档相关地址: 用户登录 获取用户数据 用户数据的签名验证和加解密                   ...

  6. 微信小程序室内地图导航开发-微信小程序JS加载esmap地图

    一.在微信小程序里显示室内三维地图 需要满足的两个条件 调用ESMap室内地图需要用到小程序web-view组件,想要通过 web-view 调用ESMap室内地图需要满足以下 2 个条件: 1. 小 ...

  7. 微信小程序(二)--逻辑层与界面层

    一.逻辑层与界面层分离 小程序开发框架将我们需要完成的编码,划分成了两种类型的编码:逻辑编码(由JavaScript完成,业务数据供给界面事件处理),界面编码(页面结构WXML,页面样式WXSS,展示 ...

  8. 微信小程序登录逻辑

    wx.getStorage({ key: 'session_id', success: function(res) { //如果本地缓存中有session_id,则说明用户登陆过 console.lo ...

  9. 微信小程序 js结构

    // pages/index/index.js Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function ...

随机推荐

  1. Node.js制作图片下载爬虫的一般步骤

    图片下载爬虫分两部分:爬页面和下载图片. 爬页面时先看网址是https还是http的,然后选择不同的内置对象: 其次看编码,如果是charset=gb2312的网页就需要iconv帮忙转码,好在大部分 ...

  2. oracle中设置了最大链接数还是报错

    须要更新的数据有1100条.我连接的时候一直报错 ORA-12518, TNS:listener could not hand off client connection 依据商品的文章设置了最大连接 ...

  3. 算法笔记_100:蓝桥杯练习 算法提高 三个整数的排序(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 输入三个数,比较其大小,并从大到小输出. 输入格式 一行三个整数. 输出格式 一行三个整数,从大到小排序. 样例输入 33 88 77 样 ...

  4. js math 对数和指数处理 expm1 log1p

    1.Math.expm1() Math.expm1(x)返回 ex - 1,即Math.exp(x) - 1. Math.expm1(-1) // -0.6321205588285577 Math.e ...

  5. maven打包时加入依赖包及加入本地依赖包

    maven打包的时候默认是不加入依赖的jar包的,所以想打出一个独立的可运行jar包的话直接mvn clean install package是不行的.需要略改动下pom文件,加入如下plugin & ...

  6. 在Win7中IIS配置Asp.Net虚拟文件夹的方法及错误总结!

    在Win7中IIS配置Asp.Net虚拟文件夹的方法总结! 一.右键[站点].点击[加入虚拟文件夹]或[虚拟应用程序],笔者建议最好建立虚拟应用程序,由于这就跟一个站点差点儿相同.不用考虑路径问题. ...

  7. sql between写法关于查时间区间是否重叠

    --判断是否重叠 SELECT * FROM TABLEName WHERE starttime BETWEEN '2008-10-01' AND '2008-10-07' OR endtime BE ...

  8. 静态资源打包:一个javescript 的src引用多个文件,一个link引用多个CSS文件

    疑惑描述: 查看了淘宝网的首页源文件,看到这样的一个特殊的 <script src="http://a.tbcdn.cn/??s/kissy/1.1.6/kissy-min.js,p/ ...

  9. 点滴积累【other】---.net程序员面试题总结

    自己总结的.net的面试题. 说明:以下代码均已经过验证正确无误! C#: 1.c#实现N的阶乘: class Program { static void Main(string[] args) { ...

  10. Spark缓存机制

    虽然默认情况下 RDD 的内容是临时的,但 Spark 提供了在 RDD 中持久化数据的机制.第一次调用动作并计算出 RDD 内容后,RDD 的内容可以存储在集群的内存或磁盘上.这样下一次需要调用依赖 ...