首页 > 其他分享 >一文告诉你Vue的事件处理

一文告诉你Vue的事件处理

时间:2024-03-11 18:37:11浏览次数:36  
标签:事件处理 Vue console 一文 点击 事件 按钮 文本

Vue 事件处理

  • 使用 v-on 指令 (简写为 @) 来监听 DOM 事件,并在事件触发时执行对应的 JavaScript。
  • methods 承载多是事件函数
  • v-on 可以用 @替换

用法

v-on:click="methodName" 

@click="methodName"

事件处理器的值可以是:

内联事件处理器:事件被触发时执行的内联 JavaScript 语句 (与 onclick 类似)。

方法事件处理器:一个指向组件上定义的方法的属性名或是路径。

按钮点击操作

场景一

按钮点击对应前端控制台输出文本:

<script>
export default{
  name: 'app',
  data(){
  },
  methods:{
    clickHandle(){
      console.log("Hello 点击事件");
    }
  }

}
</script>
<template>
  <main>
    <div>
      <h1>事件处理</h1> 
      <button v-on:click="clickHandle">按钮</button>
      <button  @click="clickHandle">按钮</button>
    </div>

  </main>
</template>

  • 点击三次,前端页面控制台输出打印三次:Hello 点击事件

场景二

按钮点击,文本交替显示或消失

<script>
export default{
  name: 'app',
  data(){
  },
  methods:{
    clickHandle(){
      console.log("Hello 点击事件");
    },
    clickText(){
      this.flag = !this.flag;
    }
  }

}
</script>
<template>
  <main>
    <div>
      <h1>事件处理</h1> 
      <button v-on:click="clickHandle">按钮</button>
      <p v-if="flag">文本按钮显示</p>
      <button @click="clickText">文本按钮</button>
    </div>
  </main>
</template>

再次点击一次,按钮上文本消失。

在事件中改变文本是否显示的属性值,methods编写对应方法,索引到data属性内定义的值。

注意:所有data里面的属性都是通过this来索引修改

列表文本事件处理

场景一

<script>
export default{
  name: 'app',
  data(){
  },
  methods:{
    listHandle(e){
      console.log(e);
    }
  }
}
</script>
<template>
  <main>
    <div>
      <h1>事件处理</h1> 
      <button v-on:click="clickHandle">按钮</button>
      <p v-if="flag">文本按钮显示</p>
      <button v-on:click="clickText">文本按钮</button>
      <ul>
        <li @click="listHandle"  
          v-for="(value, key, index) in bookObj" :key="index" >
          {{index+1}}. {{key}} : {{value}}
        </li>
      </ul>
    </div>
  </main>
</template>
  • 传入参数e,对应前端页面控制台输出元素点击操作属性内容

场景二

对应文本传入事件进行处理

<script>
export default{
  name: 'app',
  data(){
  },
  methods:{
    clickHandle(){
      console.log("Hello 点击事件");
    },
    clickText(){
      this.flag = !this.flag;
    },
    listHandle(value){
      console.log(value);
    }
  }

}
</script>
<template>
<main>
    <div>
      <h1>事件处理</h1> 
      <ul>
        <li @click="listHandle(value)"  
          v-for="(value, key, index) in bookObj" :key="index" >
          {{index+1}}. {{key}} : {{value}}
        </li>
      </ul>
    </div>
  </main>
</template>
  • value代表方法传入的文本信息,不代表envent对象

即想传递参数又想传递envent对象

    listHandle(value,e){
      console.log(value,e);
    }

事件修饰符

修饰符是用 . 表示的指令后缀,包含以下这些:

  • .stop
  • .prevent:事件将不再重新加载页面
  • .self
  • .capture
  • .once
  • .passive

页面不跳转

  • 点击a标签,对应页面跳转失效
<script>
export default{
  name: 'app',
  data(){
  },
  methods:{
    clickHandle(){
      console.log("Hello 点击事件");
    }
  }

}
</script>
<template>
  <main>
    <div>
      <h1>事件处理</h1> 
      <a @click.prevent="clickHandle" href="https://www.baidu.com/">跳转页面</a>
    </div>

  </main>
</template>

标签:事件处理,Vue,console,一文,点击,事件,按钮,文本
From: https://www.cnblogs.com/hogwarts/p/18066761

相关文章

  • vue3 父子组件间通讯
    1、父组件向子组件传值父组件<fitSteps:stepActive="stepActive"><div>插槽信息</div>      <van-buttontype="primary"@click="FatherClick">下一步</van-button></fitSteps>conststepActive=ref......
  • 一文学会JDBC实现java和mySQL的数据连接(尚硅谷学习课程代码+笔记+思路总结)
    JDBC是指数据库连接技术,用于java连接mySQL等数据库。本文详细介绍了尚硅谷课程中JDBC的学习内容和补充知识。概述java语言只提供规范接口,存在于java.sql.javax.sql包下,然后数据库软件根据java提供的规范实现具体的驱动代码(jar)jar包是java程序打成的一种压缩包格式,只要导入就......
  • Vue组件库的选择与实现 - ViewDesign
    随着Web应用的不断进化和发展,前端开发的需求也在日益增加。在这样的背景下,Vue框架以及各种Vue组件库应运而生。本文将探讨如何选择一个高质量的Vue组件库,并通过使用ViewDesign库阐述如何实现高效、优雅的前端架构。前端架构的重要性前端架构的设计对于整个项目的成功至关重要。......
  • Java登陆第三十四天——使用Vite创建工程化的Vue3项目
    VueVue是基于标准HTML、CSS和JavaScript构建的前端框架,可以更高效地开发前端页面。ViteVite是Vue团队开发的项目管理工具。Maven的主要功能引入依赖项目管理使用Maven可以工程化的管理后端代码。npm的主要功能:引入依赖vite的主要功能:项目管理使用npm+vit......
  • Vue学习笔记44--mixin混入
    mixin混入:可以理解为是代码的一种重构复用一个混入对象可以包含任意组件选项(如data、methods、mounted等等)。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。示例一:局部混合示例局部混入就是在单独的vue组件中引入了mixin混入对象 Student.vue......
  • Vue.js 与 ViewDesign:为企业级 Web 应用提供高效可靠的解决方案
    Vue.js与ViewDesign:为企业级Web应用提供高效可靠的解决方案在当今瞬息万变的商业环境中,企业需要高效、稳定且易于维护的Web应用程序来支持其日常运营和业务发展。幸运的是,Vue.js和ViewDesign的强大组合为开发人员提供了构建复杂企业级Web应用程序的完美解决方案。......
  • Vue — .sync修饰符的使用
    .sync修饰符作用:可以实现子组件和父组件数据的双向绑定,简化代码特点:prop属性名,可以自定义,非固定value使用场景:封装弹窗类的基础组件,添加自定义属性 使用true/false控制本质:就是:属性名和@update:属性名 合写<template><divclass="app"><button@click=......
  • vue前端获取/切换麦克风、播放采集音频和采集音量大小完整代码
    1、创建Vue项目在终端运行npminstallelement-uinpminstallrecordrtc2、案例图示 3、代码1、获取麦克风列表if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){varMic=[]//弹框获取麦克风navigator.mediaDevices.getUserMedia({a......
  • Vue — v-model详解
    一、v-model原理原理:v-model本质上是一个语法糖。例如在inpu中,就是value属性和input事件的合写作用:提供数据的双向绑定双向绑定:数据变,视图跟着变;视图变,数据跟着变二、表单类组件封装&v-model简化代码1.表单组件封装的核心思路:(1)父传子:数据从父组件使用prop传递给子组件渲染......
  • JeecgBoot Vue3前端项目性能优化&按需加载方案
    JeecgBootvue3前端项目在3.5.5版本之前,的确存在很严重的性能问题,大家可以参考以下文档进行升级。按需加载改造方法1、全局注册地方去掉2、组件改成异步注册3、用不到的大组件可以删掉【精简项目方案】大组件1、富文本tinyme2、Markdown3、CodeMirror4、地图数据......