加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Vue 事件处理方法

发布时间:2023-04-18 15:03:37 所属栏目:教程 来源:
导读:可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

使用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

监听点击事件,并在触发时运行一些 JavaScript 代码
<!DOCTYPE
可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

使用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

监听点击事件,并在触发时运行一些 JavaScript 代码
<!DOCTYPE html>
  <html lang="en">
  <head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width, initial-scale=1.0">
    <Meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <div>商品数量 {{count}}</div>
      <button v-on:click="count = count + 1"> 加一个 </button>
    </div>
  </body>
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        count: 
      },
    })
  </script>
</html>
代码解释:
在 html 第 3 行,我们使用 v-on 指令给 button 元素绑定来一个 click 事件,并在点击的时候执行 count + 1 的操作。

通过 methods 实现事件函数绑定

在上面的例子中,我们把事件处理函数直接写在模板中,然而许多事件处理的逻辑都很复杂,所以直接把JS代码写在 v-on 指令中有时并不可行,v-on 指令可以接收一个定义的方法来调用。示例如下:

<!DOCTYPE html>
  <html lang="en">
  <head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width, initial-scale=1.0">
    <Meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <div>商品数量 {{count}}</div>
      <button v-on:click="add"> 加一个 </button>
    </div>
  </body>
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        count: 
      },
      methods: {
        add() {
          this.count = this.count + 
        }
      }
    })
  </script>
</html>
代码解释:
在 html 第 3 行,我们使用 v-on 指令给 button 元素绑定来一个 click 事件,并在点击的时候执行 add 方法。
在 JS 代码第 9-11 行,我们定义了方法 add;触发该方法时给 count + 1。

给事件传递参数

有时候我们需要在事件触发的时候传递一些参数,

<!DOCTYPE html>
  <html lang="en">
  <head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width, initial-scale=1.0">
    <Meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <div>商品数量 {{count}}</div>
      <button v-on:click="setCount(10)"> 设置为 10 个 </button>
      <button v-on:click="setCount(0)"> 设置为 0 个 </button>
    </div>
  </body>
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        count: 
      },
      methods: {
        setCount(count, event) {
          this.count = count
        }
      }
    })
  </script>
</html>
代码解释:
在 html 第 3 行,我们使用 v-on 指令给 button 元素绑定了一个 click 事件,并在点击的时候执行 add 方法。
在 JS 代码第 9-11 行,我们定义了方法 add;触发该方法时给 count + 1。

获取原生 DOM 事件
 
有时我们需要在内联语句处理器中访问原始的 DOM 事件。可以用特殊变量 $event 把它传入方法:

<!DOCTYPE html>
  <html lang="en">
  <head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width, initial-scale=1.0">
    <Meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <div>商品数量 {{count}}</div>
      <button v-on:click="setCount(10, $event)"> 设置为 10 个 </button>
      <button v-on:click="setCount(0, $event)"> 设置为 0 个 </button>
    </div>
  </body>
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        count: 
      },
      methods: {
        setCount(count, event) {
          this.count = count
          console.log(event)
        }
      }
    })
  </script>
</html>
代码解释:
在上述 JS 代码第 9-12 行,我们定义了事件函数 setCount。 在按钮点击事件中,我们将 $event 对象传递给函数,因此,在函数 setCount 中可以访问到原生事件对象。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章