Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Vue-Methoden und Event-Handler

Detaillierte Erläuterung der Vue-Methoden und Event-Handler

高洛峰
高洛峰Original
2016-12-03 09:33:501248Durchsuche

Das Beispiel in diesem Artikel zeigt die Verwendung von Vue-Methoden und Ereignishandlern als Referenz. Der spezifische Inhalt ist wie folgt:

Tastenmodifikatoren

Beim Abhören von Tastaturereignissen. wir Es ist oft notwendig, keyCode zu erkennen. Vue.js ermöglicht das Hinzufügen von Schlüsselmodifikatoren zu v-on:

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

Es ist schwierig, sich alle Schlüsselcodes zu merken. Vue.js bietet Aliase für die am häufigsten verwendeten Schlüssel:

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

Alle Tasten-Aliase: Eingabetaste, Tabulatortaste, Löschtaste, Esc-Taste, Leertaste, Aufwärts-, Abwärts-, Links- und Rechtstaste.

zB:

Der HTML-Code lautet wie folgt:

<template>
<div class="home-body">
 <div class="project-all">
 <template v-for=&#39;project in projectData&#39;>
 <div class="name" v-on:click=&#39;successT($index)&#39; v-bind:class="{&#39;success&#39;:project.success}">{{project.projectName}}</div>
 </template>
 <div class="name" v-if=&#39;addp&#39; v-on:click=&#39;addproject&#39;>新增项目</div>
 <div class="name" v-if=&#39;!addp&#39;>
 <input type="text" class=&#39;name-input&#39; placeholder=&#39;请填写项目名称&#39; v-on:keyup.enter=&#39;saveProjectFun&#39; v-el:addProject>
 </div>
 <div class="name">
 <input type="text" class=&#39;name-input&#39; placeholder=&#39;esc&#39; v-on:keyup.esc=&#39;escFun&#39;>
 </div>
 <div class="name">
 <input type="text" class=&#39;name-input&#39; placeholder=&#39;delete&#39; v-on:keyup.delete=&#39;deleteFun&#39;>
 </div>
 <div class="name">
 <input type="text" class=&#39;name-input&#39; placeholder=&#39;space&#39; v-on:keyup.space=&#39;spaceFun&#39;>
 </div>
 <div class="name">
 <input type="text" class=&#39;name-input&#39; placeholder=&#39;up&#39; v-on:keyup.up=&#39;upFun&#39;>
 </div>
 <div class="name">
 <input type="text" class=&#39;name-input&#39; placeholder=&#39;down&#39; v-on:keyup.down=&#39;downFun&#39;>
 </div>
 <div class="name">
 <input type="text" class=&#39;name-input&#39; placeholder=&#39;left&#39; v-on:keyup.left=&#39;leftFun&#39;>
 </div>
 <div class="name"> 
 <input type="text" class=&#39;name-input&#39; placeholder=&#39;right&#39; v-on:keyup.right=&#39;rightFun&#39;>
 </div>
 </div>
</div>
</template>

JS-Code:

<script>
export default {
 components: {
 
 },
 ready: function() {
  
 },
 methods: {
 //当你选种某个项目时,将其success属性改为true,为其class添加 success 
 successT:function(index){
 this.projectData.forEach(function(item){
 item.success=false;
 });
 this.projectData[index].success=true;
 },
 //点击添加项目后让其不显示
 addproject:function(){
 this.addp=false;
 }, 
 //当用户按回车后,保存添加的项目
 saveProjectFun:function(){
 var obj={}
 obj.success=false;
 let name=this.$els.addproject.value;
 obj.projectName=name.replace(/\s+/g,""); 
 this.projectData.push(obj);
 this.addp=true;
 },
 escFun:function(){
 alert("esc");
 },
 deleteFun:function(){
 alert("delete");
 },
 spaceFun:function(){
 alert("space空格键");
 },
 upFun:function(){
 alert("up");
 },
 downFun:function(){
 alert("down");
 },
 leftFun:function(){
 alert("left");
 },
 rightFun:function(){
 alert("right");
 }
 },
 data() {
 return {
 addp:true,//是否显示添加项目
 projectData:[{
  success:false,
  projectName: &#39;人员管理系统&#39;
  }, { 
  success:false,
  projectName: &#39;管理系统&#39;
  },{
  success:false,
  projectName: &#39;假数据1&#39;
  },{
  success:false,
  projectName: &#39;假数据2&#39;
  }, {
  success:false,
  projectName: &#39;假数据3&#39;
  }
 ],
 }
 }
}
</script>

Der Anfang der Seite:

Detaillierte Erläuterung der Vue-Methoden und Event-Handler

Wenn Sie auf das neue Element klicken:

Detaillierte Erläuterung der Vue-Methoden und Event-Handler

Geben Sie „Doudou“ in das Textfeld ein und drücken Sie die Eingabetaste, um zurückzukehren zur Seite

Detaillierte Erläuterung der Vue-Methoden und Event-Handler

Wenn Sie die Eingabetaste drücken, wird das Ereignis keyup.enter ausgelöst, um die Methode saveProjectFun aufzurufen, und die Daten werden in dieser Methode gespeichert.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn