首页 > 其他分享 >#yyds干货盘点#【yyds干货盘点】5. Vue.js 事件处理

#yyds干货盘点#【yyds干货盘点】5. Vue.js 事件处理

时间:2023-06-10 16:05:35浏览次数:51  
标签:yyds Vue 自定义 js 盘点 干货 事件 child msg

学习目录:

  1. Vue.js 简介
  2. Vue.js 实例与数据绑定
  3. Vue.js 计算属性和侦听器
  4. Vue.js 条件渲染和列表渲染
  5. Vue.js 事件处理
  6. Vue.js 表单输入绑定
  7. Vue.js 组件基础
  8. Vue.js 组件通信
  9. Vue.js 插槽
  10. Vue.js 动态组件和异步组件
  11. Vue.js 自定义指令
  12. Vue.js 过渡和动画
  13. Vue.js 混入
  14. Vue.js 自定义事件和 v-model
  15. Vue.js 渲染函数和 JSX
  16. Vue.js 插件
  17. Vue.js 单文件组件
  18. Vue.js Webpack 配置和打包优化
  19. Vue.js Vue Router
  20. Vue.js Vuex
  21. Vue.js 服务端渲染
  22. Vue.js 代码测试和调试
  23. Vue.js 生态系统
  24. Vue.js 最佳实践和性能优化
  25. Vue.js 应用部署和上线



事件绑定

在 Vue.js 中,可以通过 v-on 指令来绑定事件。例如,下面的代码将在按钮被点击时调用 sayHello 方法:

<button v-on:click="sayHello">Say Hello</button>

在上面的代码中,v-on 是 Vue.js 中用于绑定事件的指令,click 是事件的名称,sayHello 是组件中定义的一个方法。

除了 v-on 指令,还可以使用 @ 缩写来进行事件绑定:

<button @click="sayHello">Say Hello</button>

这种写法与上面的写法是等价的。

除了 click 事件,Vue.js 还支持其他一些常见的事件,例如 keyupkeydownsubmit 等等。可以在官方文档中查看完整的事件列表。

当然,以下是几个常见的事件处理的示例,供您参考:

1. 事件绑定

可以使用 v-on 指令来绑定事件,例如:

<button v-on:click="handleClick">Click me</button>

在上述示例中,当按钮被点击时,Vue.js 会自动调用 handleClick 方法。

2. 传递事件参数

有时候需要将事件参数传递给处理方法。可以使用 $event 特殊变量来传递事件参数,例如:

<button v-on:click="handleClick($event)">Click me</button>

在上述示例中,$event 是一个特殊变量,它会传递事件对象作为参数给 handleClick 方法。

3. 按键事件

可以使用 v-on:keyupv-on:keydown 指令来监听键盘事件,例如:

<input v-on:keyup.enter="submitForm">

在上述示例中,submitForm 方法会在用户按下回车键时被调用。

4. 阻止事件冒泡

有时候需要阻止事件冒泡,可以使用 stopPropagation 方法,例如:

<div v-on:click="handleOuterClick">
  <button v-on:click.stop="handleInnerClick">Click me</button>
</div>

在上述示例中,当用户点击按钮时,handleInnerClick 方法会被调用,但是事件不会冒泡到父元素,也就不会触发 handleOuterClick 方法。

5. 阻止默认行为

有时候需要阻止事件的默认行为,可以使用 preventDefault 方法,例如:

<a href="#" v-on:click.prevent="handleClick">Click me</a>

在上述示例中,当用户点击链接时,handleClick 方法会被调用,但是链接不会跳转到指定的页面,因为默认行为已经被阻止。

希望这些示例能够对您有所帮助。

#yyds干货盘点#【yyds干货盘点】5. Vue.js 事件处理_Vue

自定义事件

除了绑定浏览器原生事件,Vue.js 还支持自定义事件。自定义事件可以帮助我们在组件之间进行通信。例如,下面的代码定义了一个名为 child-msg 的自定义事件:

Vue.component('child', {
  // ...
  methods: {
    sendMessage: function () {
      this.$emit('child-msg', 'Hello from child!');
    }
  }
});

在上面的代码中,$emit 方法用于触发 child-msg 事件,并传递了一个字符串参数。当 child-msg 事件被触发时,父组件可以通过 v-on 指令来监听这个事件:

<child v-on:child-msg="handleChildMsg"></child>

在上面的代码中,handleChildMsg 是父组件中定义的一个方法,它将被调用并传递 child-msg 事件的参数。

示例

下面是一个简单的示例,演示了如何在 Vue.js 中处理事件:

<!DOCTYPE html>
<html>
<head>
  <title>Vue.js Event Handling Example</title>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
  <div id="app">
    <button v-on:click="sayHello">Say Hello</button>
    <p>{{ message }}</p>
    <child v-on:child-msg="handleChildMsg"></child>
  </div>

  <script>
    Vue.component('child', {
      template: '<button v-on:click="sendMessage">Send Message to Parent</button>',
      methods: {
        sendMessage: function () {
          this.$emit('child-msg', 'Hello from child!');
        }
      }
    });

    var app = new Vue({
      el: '#app',
      data: {
        message: ''
      },
      methods: {
        sayHello: function () {
          this.message = 'Hello!';
        },
        handleChildMsg: function (msg) {
          this.message = msg;
        }
      }
    });
  </script>
</body>
</html>

在上面的代码中,我们定义了一个名为 app 的 Vue 实例,它包含一个按钮和一个 child 组件。单击按钮将调用 sayHello 方法,而 child 组件将触发一个自定义事件 child-msg。当 child-msg 事件被触发时,handleChildMsg 方法将被调用,并将事件的参数赋值给 message 数据属性。

总结

本文介绍了 Vue.js 中的事件处理,包括事件绑定和自定义事件。通过 v-on 指令和 $emit 方法,我们可以在 Vue.js 中轻松地处理浏览器原生事件和自定义事件。在开发 Vue.js 应用程序时,了解如何处理事件是非常重要的。在处理事件时,我们需要注意以下几点:

  1. 使用 v-on 指令来绑定事件,可以使用 @ 缩写来替代。
  2. Vue.js 支持常见的浏览器原生事件,例如 clickkeyupkeydownsubmit 等等。
  3. 自定义事件可以帮助我们在组件之间进行通信,可以使用 $emit 方法来触发自定义事件。
  4. 在处理事件时,我们需要关注事件参数的传递和处理。

最后,我们需要注意的是,在 Vue.js 中,事件处理是一个非常重要的概念。对于事件处理的深入理解将有助于我们更好地构建 Vue.js 应用程序。

标签:yyds,Vue,自定义,js,盘点,干货,事件,child,msg
From: https://blog.51cto.com/u_16123429/6454720

相关文章

  • 项目管理的3种组织结构盘点:职能型、项目型、矩阵型
    没有组织架构的企业将是一盘散沙,组织架构不合理会严重阻碍企业的正常运作,甚至导致企业经营的彻底失败。相反,适宜、高效的组织架构能够最大限度的释放企业的能量,使组织更好发挥协同效应,达到“1+1>2”的合理运营状态。今天我们就来了解一下组织架构都有哪几种形式,其优缺点是什么。......
  • 干货|开源OLAP引擎(ClickHouse、Doris、Presto、ByConity)性能对比分析
    随着数据量和数据复杂性的不断增加,越来越多的企业开始使用OLAP(联机分析处理)引擎来处理大规模数据并提供即时分析结果。在选择OLAP引擎时,性能是一个非常重要的因素。 因此,本文将使用TPC-DS基准测试的99个查询语句来对比开源的ClickHouse、Doris、Presto以及ByConity这4个OLAP引......
  • #yyds干货盘点# LeetCode程序员面试金典:单词接龙 II
    题目:按字典 wordList完成从单词beginWord到单词endWord转化,一个表示此过程的转换序列是形式上像beginWord->s1->s2->...->sk这样的单词序列,并满足:每对相邻的单词之间仅有单个字母不同。转换过程中的每个单词si(1<=i<=k)必须是字典 wordList中的单词。注意,be......
  • #yyds干货盘点# LeetCode程序员面试金典:快乐数
    1.简述:编写一个算法来判断一个数n是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1。如果这个过程结果为 1,那么这个数就是快乐数。如果n是快乐数就返回t......
  • 盘点新中国杰出的二十位医学家
    盘点新中国杰出的二十位医学家好物推荐  4人赞同了该文章 中国泌尿外科的先驱者——吴阶平 中国医学圣母——林巧稚 中国心胸外科学的奠基人——黄家驷 中国消化病学的奠基人——张孝骞 著名的中医临床学家——萧龙友 中国胸......
  • #yyds干货盘点# LeetCode程序员面试金典:单词接龙
    题目:字典 wordList中从单词beginWord 和endWord的转换序列是一个按下述规格形成的序列 beginWord->s1 ->s2 ->...->sk:每一对相邻的单词只差一个字母。 对于 1<=i<=k 时,每个 si 都在 wordList 中。注意,beginWord 不需要在 wordList 中。sk ==endW......
  • #yyds干货盘点# LeetCode程序员面试金典:数字范围按位与
    1.简述:给你两个整数left和right,表示区间[left,right],返回此区间内所有数字按位与的结果(包含left、right端点)。 示例1:输入:left=5,right=7输出:4示例2:输入:left=0,right=0输出:0示例3:输入:left=1,right=2147483647输出:02.代码实现:classSolution{pu......
  • #yyds干货盘点#用Python实现简单的图像识别
    在这篇文章中,我们将使用Python和TensorFlow来实现一个简单的图像识别系统。我们将使用经典的MNIST数据集,这是一个包含手写数字的数据集,用于训练和测试图像识别系统。一、准备环境首先,我们需要安装所需的库。在这里,我们将使用TensorFlow和Keras。您可以使用以下命令安装这些库:pip......
  • #yyds干货盘点#HCL防火墙WEB方式登录配置
    HCL防火墙WEB方式登录配置ComwareV5防火墙中存在区域优先级的概念,以及默认区域互访策略,即高优先级安全区域可以访问低优先级,低优先级区域不能访问高优先级区域,相同优先级区域可以互访,所有区域都可以访问local区域。出于安全性的考虑,ComwareV7摒弃了V5中区域优先级的概念以及默认......
  • 盘点| 三种移动跨平台方案
    跨平台技术是前端人必备技能,今天就来为大家解读一下近几年业界主流的三大移动端跨平台方案:Web天然跨平台:WebApp、PWA(ProgressiveWebApps)、HybridApp、PHA(ProgressHybridApp)都可以实现跨平台,WebView是一种基于浏览器内核的跨平台解决方案,通过在移动应用中嵌入一个浏览器......