当前位置:Gxlcms > JavaScript > Vue方法与事件处理器详解

Vue方法与事件处理器详解

时间:2021-07-01 10:21:17 帮助过:14人阅读

本文实例为大家分享了Vue方法与事件处理器的使用,供大家参考,具体内容如下

按键修饰符

在监听键盘事件时,我们经常需要检测 keyCode。Vue.js 允许为 v-on 添加按键修饰符:

  1. <!-- 只有在 keyCode 是 13 时调用 vm.submit() -->
  2. <input v-on:keyup.13="submit">

记住所有的 keyCode 比较困难,Vue.js 为最常用的按键提供别名:

  1. <!-- 同上 -->
  2. <input v-on:keyup.enter="submit">
  3. <!-- 缩写语法 -->
  4. <input @keyup.enter="submit">

全部的按键别名:enter 、tab 、delete、 esc 、space、 up 、down、 left 、right。

eg:

HTML如下:

  1. <template>
  2. <div class="home-body">
  3. <div class="project-all">
  4. <template v-for='project in projectData'>
  5. <div class="name" v-on:click='successT($index)' v-bind:class="{'success':project.success}">{{project.projectName}}</div>
  6. </template>
  7. <div class="name" v-if='addp' v-on:click='addproject'>新增项目</div>
  8. <div class="name" v-if='!addp'>
  9. <input type="text" class='name-input' placeholder='请填写项目名称' v-on:keyup.enter='saveProjectFun' v-el:addProject>
  10. </div>
  11. <div class="name">
  12. <input type="text" class='name-input' placeholder='esc' v-on:keyup.esc='escFun'>
  13. </div>
  14. <div class="name">
  15. <input type="text" class='name-input' placeholder='delete' v-on:keyup.delete='deleteFun'>
  16. </div>
  17. <div class="name">
  18. <input type="text" class='name-input' placeholder='space' v-on:keyup.space='spaceFun'>
  19. </div>
  20. <div class="name">
  21. <input type="text" class='name-input' placeholder='up' v-on:keyup.up='upFun'>
  22. </div>
  23. <div class="name">
  24. <input type="text" class='name-input' placeholder='down' v-on:keyup.down='downFun'>
  25. </div>
  26. <div class="name">
  27. <input type="text" class='name-input' placeholder='left' v-on:keyup.left='leftFun'>
  28. </div>
  29. <div class="name">
  30. <input type="text" class='name-input' placeholder='right' v-on:keyup.right='rightFun'>
  31. </div>
  32. </div>
  33. </div>
  34. </template>

JS代码:

  1. <script>
  2. export default {
  3. components: {
  4. },
  5. ready: function() {
  6. },
  7. methods: {
  8. //当你选种某个项目时,将其success属性改为true,为其class添加 success
  9. successT:function(index){
  10. this.projectData.forEach(function(item){
  11. item.success=false;
  12. });
  13. this.projectData[index].success=true;
  14. },
  15. //点击添加项目后让其不显示
  16. addproject:function(){
  17. this.addp=false;
  18. },
  19. //当用户按回车后,保存添加的项目
  20. saveProjectFun:function(){
  21. var obj={}
  22. obj.success=false;
  23. let name=this.$els.addproject.value;
  24. obj.projectName=name.replace(/\s+/g,"");
  25. this.projectData.push(obj);
  26. this.addp=true;
  27. },
  28. escFun:function(){
  29. alert("esc");
  30. },
  31. deleteFun:function(){
  32. alert("delete");
  33. },
  34. spaceFun:function(){
  35. alert("space空格键");
  36. },
  37. upFun:function(){
  38. alert("up");
  39. },
  40. downFun:function(){
  41. alert("down");
  42. },
  43. leftFun:function(){
  44. alert("left");
  45. },
  46. rightFun:function(){
  47. alert("right");
  48. }
  49. },
  50. data() {
  51. return {
  52. addp:true,//是否显示添加项目
  53. projectData:[{
  54. success:false,
  55. projectName: '人员管理系统'
  56. }, {
  57. success:false,
  58. projectName: '管理系统'
  59. },{
  60. success:false,
  61. projectName: '假数据1'
  62. },{
  63. success:false,
  64. projectName: '假数据2'
  65. }, {
  66. success:false,
  67. projectName: '假数据3'
  68. }
  69. ],
  70. }
  71. }
  72. }
  73. </script>

页面最开始:

t01982e0291c6a1d93b.jpg

当你点击新增项目后:

t01982e0291c6a1d93b.jpg

在文本框中输入 “豆豆”后按回车键后页面

t01982e0291c6a1d93b.jpg

当你按回车键后触发 keyup.enter事件调saveProjectFun方法,在此方法中进行数据保存。

人气教程排行