微信小程序中的JS

https://blog.csdn.net/ssyes123/article/details/79735018

微信小程序中的JS

作用:JS主要是用来做交互,比如:响应用户的点击、获取用户的位置等等。通过编写 JS 脚本文件来处理用户的操作。

简单来说,WXML决定有什么内容,WXSS决定内容长什么样子,JS呢,决定了页面和用户操作的交互,体验好不好就看JS了。

例如,页面中有个按钮,

<view>{{ msg }}</view>
<button bindtap="clickMe">点击我</button>
事件概念:这里的button(bindtap=“clickMe”)绑定了一个clickMe的事件,当点击时就会触发clickMe函数。

而在JS里呢,当点击的时候,就把msg的内容动态替换为“Hello World”。

Page({
  clickMe: function() {
    this.setData({ msg: "Hello World" })
  }
})


事件:

事件呢,就是视图层到逻辑层的通讯方式。

简单来说,通过把事件绑定在组件上(在WXML),然后事件携带信息传递到JS中做函数处理,这就是WXML到JS的通信方式。

举例来说明,在组件中绑定一个事件处理函数。

如bindtap,当点击该组件的时,会在Page中找到相应的事件处理函数(tapName函数)。

<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>
JS里的代码:

Page({
  tapName: function(event) {
    console.log(event)
  }
})
当用户点击时,就会执行tapName函数,打印event。

事件呢,可以分为冒泡事件和非冒泡事件。

冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。

非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

WXML里的常用冒泡事件有:

注意:除上表之外的其他组件自定义事件,如无特殊声明都是非冒泡事件,如<form/>的submit事件,<input/>的input事件,<scroll-view/>的scroll事件。

事件的绑定和冒泡

事件绑定的写法同组件的属性,以 key、value 的形式。也就是key=value(如bindtap="handleTap1")

key 以bind或catch开头,然后跟上事件的类型,如bindtap、catchtouchstart。自基础库版本 1.5.0 起,bind和catch后可以紧跟一个冒号,其含义不变,如bind:tap、、catch:touchstart。
value 是一个字符串,需要在对应的 Page 中定义同名的函数。


注意:bind事件绑定冒泡事件可以向上冒泡,catch事件绑定冒泡事件不会向上冒泡。

<view id="outer" bindtap="handleTap1">
  outer view
  <view id="middle" catchtap="handleTap2">
    middle view
    <view id="inner" bindtap="handleTap3">
      inner view
    </view>
  </view>
</view>
如上,

点击 inner view 会先后调用handleTap3和handleTap2,而不会在向上冒泡到outer(因为tap事件会冒泡到 middle view,而 middle view 阻止了 tap 事件冒泡,不再向父节点传递)。

点击 middle view 会触发handleTap2。

点击 outer view 会触发handleTap1。

(待续...)


--------------------- 
作者:ssyes123 
来源:CSDN 
原文:https://blog.csdn.net/ssyes123/article/details/79735018 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/zhangdaohong/article/details/83545246
今日推荐