小程序学习(一)

先来学习几个js方法:

  1. concat():用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

  2. unshift() : 方法可向数组的开头添加一个或更多元素,并返回新的长度

开始我们的小程序学习

  1. bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。

  2. 自基础库版本 1.5.0 起,触摸类事件支持捕获阶段。捕获阶段位于冒泡阶段之前,且在捕获阶段中,事件到达节点的顺序与冒泡阶段恰好相反。需要在捕获阶段监听事件时,可以采用capture-bind、capture-catch关键字,后者将中断捕获阶段和取消冒泡阶段。

  3. 事件对象:

    target:被点击的组件

    currentTarget:当前事件绑定的组件

  4.  在组件中可以定义数据,这些数据将会通过事件传递给 SERVICE。 书写方式: 以data-开头,多个单词由连字符-链接,不能有大写(大写会自动转成小写)如data-element-type,最终在 event.currentTarget.dataset 中会将连字符转成驼峰elementType。

    示例:

    <view data-alpha-beta="1" data-alphaBeta="2" bindtap="bindViewTap"> DataSet Test </view>

    Page({

      bindViewTap:function(event){

        event.currentTarget.dataset.alphaBeta === 1 // - 会转为驼峰写法

        event.currentTarget.dataset.alphabeta === 2 // 大写会转为小写

      }

    })

说明: target 和 currentTarget 可以参考上例中,点击 inner view 时,handleTap3 收到的事件对象 target 和 currentTarget 都是 inner,而 handleTap2 收到的事件对象 target 就是 inner,currentTarget 就是 middle。    

<view id="outer" bind:touchstart="handleTap1" capture-bind:touchstart="handleTap2">

  outer view

  <view id="inner" bind:touchstart="handleTap3" capture-bind:touchstart="handleTap4">

    inner view

  </view>

</view>

如果将上面代码中的第一个capture-bind改为capture-catch,将只触发handleTap2。

<view id="outer" bind:touchstart="handleTap1" capture-catch:touchstart="handleTap2">

  outer view

  <view id="inner" bind:touchstart="handleTap3" capture-bind:touchstart="handleTap4">

    inner view

  </view>

</view>

5. 小程序的生命周期函数

 

 

模块化:

module.exports = {

    loadInfo: loadInfo

}

注意: <block/> 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。