只要是用户和应用有交互的关系,这些动作都是事件

web与uni-app对应事件的映射

  1. 事件映射表
  2. // 事件映射表,左侧为 WEB 事件,右侧为 ``uni-app`` 对应事件
  3. {
  4. click: 'tap',
  5. touchstart: 'touchstart',
  6. touchmove: 'touchmove',
  7. touchcancel: 'touchcancel',
  8. touchend: 'touchend',
  9. tap: 'tap',
  10. longtap: 'longtap', //推荐使用longpress代替
  11. input: 'input',
  12. change: 'change',
  13. submit: 'submit',
  14. blur: 'blur',
  15. focus: 'focus',
  16. reset: 'reset',
  17. confirm: 'confirm',
  18. columnchange: 'columnchange',
  19. linechange: 'linechange',
  20. error: 'error',
  21. scrolltoupper: 'scrolltoupper',
  22. scrolltolower: 'scrolltolower',
  23. scroll: 'scroll'
  24. }


1、/pages下创建一个events页面

2、/pages.json中配置下路由

加入

  1. {
  2. "path" : "pages/events/events",
  3. "style" :
  4. {
  5. "navigationBarTitleText": "",
  6. "enablePullDownRefresh": false
  7. }
  8. }

3、events.vue中写入input

  1. <template>
  2. <view>
  3. <input type="text" :value="title" @input="change" />
  4. </view>
  5. </template>

这个input表示

当用户在编写一些文字的时候,只要是文本框中的内容发生了变化,随后就会触发change事件
事件都是以@符号展开

案例

  1. <template>
  2. <view>
  3. <input type="text" :value="title"
  4. style="background-color: #8F8F94; height: 100rpx;"
  5. @input="change"
  6. @focus="focus"
  7. @blur="blur"
  8. @confirm="confirm"
  9. />
  10. </view>
  11. </template>

然后将以上事件在<script>中写一下
所有的自定义函数都要写在统一定的新的属性methods(){}
这是一个方法对象,所有的方法函数都要写在里面

  1. methods:{
  2. focus(){
  3. console.log(获得焦点)
  4. },
  5. blur(){
  6. console.log(失去焦点)
  7. }
  8. confirm(){
  9. console.log(点击确认按钮/点击回车键)
  10. }
  11. }

@tap和@click两个事件同时写的话,在浏览器中tap事件会覆盖掉click事件
在手机端tap和click事件能同时触发,tap事件先被触发,但是在手机端两个取其一

@longpress和@longtap两者官方推荐用@longpress

touch事件的生命周期

  • @touchstart 手指触摸动作开始
  • @touchmove 手指触摸后移动
  • @touchend 手指触摸动作结束
  • @touchcancle 手指触摸动作被打断,如来电提醒,弹窗