## uni-app 事件
**事件映射表,左侧为 WEB 事件,右侧为 ``uni-app`` 对应事件**
{
click: 'tap',
touchstart: 'touchstart',
touchmove: 'touchmove',
touchcancel: 'touchcancel',
touchend: 'touchend',
tap: 'tap',
longtap: 'longtap',
input: 'input',
change: 'change',
submit: 'submit',
blur: 'blur',
focus: 'focus',
reset: 'reset',
confirm: 'confirm',
columnchange: 'columnchange',
linechange: 'linechange',
error: 'error',
scrolltoupper: 'scrolltoupper',
scrolltolower: 'scrolltolower',
scroll: 'scroll'
}
在 input 和 textarea 中 change 事件会被转为 blur 事件。
## 踩坑注意:
上列表中没有的原生事件也可以使用,例如map组件的regionchange 事件直接在组件上写成 @regionchange,同时这个事件也非常特殊,它的 event type 有 begin 和 end 两个,导致我们无法在handleProxy 中区分到底是什么事件,所以你在监听此类事件的时候同时监听事件名和事件类型既 <map @regionchange="functionName" @end="functionName" @begin="functionName"><map>
平台差异所致,bind 和 catch 事件同时绑定时候,只会触发 bind ,catch 不会被触发,要避免踩坑。
## 事件修饰符
stop 的使用会阻止冒泡,但是同时绑定了一个非冒泡事件,会导致该元素上的 catchEventName 失效!
prevent 可以直接干掉,因为uni-app里没有什么默认事件,比如 submit 并不会跳转页面
self 没有可以判断的标识
once 也不能做,因为uni-app没有 removeEventListener, 虽然可以直接在 handleProxy 中处理,但非常的不优雅,违背了原意,暂不考虑
按键修饰符:uni-app运行在手机端,没有键盘事件,所以不支持按键修饰符。
## 事件绑定 @click
```
<template>
<view class="demo" @click="clickTest" @longtap="longtap"></view>
</template>
<script>
export default {
methods:{
clickTest: function(e){
console.log(e);
console.log('click');
},
longtap: function(e){
console.log(e);
console.log('longtap');
}
}
}
</script>
<style>
.demo{width:500px; margin:50px auto; background:#8F8F90; height:500px;}
</style>
```
注意在小程序中观察对应事件对象,可以利用此对象获取更多信息。
## 事件传参(动态参数演示)
```
<template>
<view>
<view class="uni-list">
<view class="uni-list-cell" v-for="(item,index) in students" :key="index">
<view class="uni-list-cell-navigate uni-navigate-right" @click="menuClick" v-bind:id="index">
{{index}} - {{item.name}}
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data: {
students : [
{name : "张三", age : 18},
{name : "李四", age : 20}
]
},
methods:{
menuClick : function(e){
console.log(e);
console.log(e.target.id);
}
},
}
</script>
<style>
.persons{width:750px; line-height:2.2em;}
</style>
```
- 第1讲 : 创建项目、部署 VUE 、入口页面布局
- 第2讲,快速开始第一个项目
- 第3讲 : uni-app 开发规范及目录结构
- 第4讲 : uni-app 页面样式与布局
- 第5讲 : uni-app 配置文件 - pages.json
- 第6讲 : 配置文件 - manifest.json
- 第7讲 : uni-app 页面生命周期
- 第8讲 : uni-app 模板语法 - 数据绑定
- 第9讲Class 与 Style 绑定 (动态菜单激活示例)
- 第10讲 : uni-app 事件处理、事件绑定、事件传参
- 第11讲 : uni-app 组件 - 基础组件
- 第12讲 : uni-app 组件 - 表单组件
- 第13讲 : uni-app 组件 - navigator(导航)及页
- 第14讲 : uni-app 组件 - 媒体组件
- 第15讲 : uni-app 组件 - 地图组件
- 第16讲 : uni-app 接口 - 网络请求
- 第17讲 : uni-app 接口 - 从本地相册选择图片或使
- 第18讲 : uni-app 上传(图片上传实战)
- 第19讲 : uni-app 接口 - 数据缓存
- 第20讲 : uni-app 设备相关
- 第21讲 : uni-app 交互反馈
- 第22讲 : uni-app 设置导航条
- 第23讲 : uni-app 导航(页面流转)
- 第24讲 : uni-app 下拉刷新
- 第25讲 : uni-app 上拉加载更多
- 第26讲 : uni-app 第三方登录(小程序篇)
- 第27讲 : uni-app 登录(h5+ app 篇)
- 第28讲 : 自定义组件创建及使用