zoukankan      html  css  js  c++  java
  • Vue 方法与事件(三)

    1、v-on 指令类似原生 Javascript 的 onclick 等写法,也是在 html 上进行监听的。例如:

    <template>
      <div id="app">
        点击次数:{{ counter }}
        <button @click="counter++">+1</button>
      </div>
    </template>
    <script>
    
    export default {
      name: 'App',
      data() {
        return {
            counter: 0
        }
      }
    }
    </script>

    Vue.js 给 v-on 指令提供了语法糖,也可以说是缩写,可以省略 v-on,直接写一个 @:

    <button v-on:click="counter++">+1</button>
    <!-- 缩写为 -->
    <button @click="counter++">+1</button>

    2、@click 的表达式可以直接使用 Javascript 语句,也可以是一个在 Vue 实例中 methods 选项内的函数名,

    比如对上例进行扩展,再增加一个按钮,点击一次,计数器加 10:

    <template>
      <div id="app">
        点击次数:{{ counter }}
        <button @click="handleAdd()">+1</button>
        <button @click="handleAdd(10)">+10</button>
      </div>
    </template>
    <script>
    
    export default {
      name: 'App',
      data() {
        return {
            counter: 0
        }
      },
      methods: {
        handleAdd: function(count) {
          count = count || 1;
          // this 指向当前 Vue 实例
          this.counter += count;
        }
      }
    }
    </script>

    @click 调用的方法名后可以不跟括号“()”。此时如果该方法有参数,默认会将原生事件对象 event 传入。

    在大部分业务场景中,如果方法不需要传入参数,为了简便可以不写括号。

    3、Vue 提供了一个特殊变量 $event,用于访问原生 DOM 事件,例如下面的实例可以阻止链接打开:

    <template>
      <div id="app">
        <a href="http://www.baidu.com" @click="handleClick('禁止打开', $event)">打开链接</a>
      </div>
    </template>
    <script>
    export default {
      name: "App",
      data() {
        return {
          counter: 0
        };
      },
      methods: {
        handleClick: function(message, event) {
          event.preventDefault();
          window.alert(message);
        }
      }
    };
    </script>

    参考:

    《Vue.js 实战》

    https://cn.vuejs.org/v2/guide/

    艺无止境,诚惶诚恐, 感谢开源贡献者的努力!!
  • 相关阅读:
    python列表作为默认参数的问题
    python 强制停止线程
    cProfile 分析python运行时间
    python global全局变量 模块通信问题
    ajax请求数据get、post
    vue中加载three.js全景图
    vue中加载three.js的gltf模型
    vue-cli2.x与vue-cli3.x的搭建
    cesium加载gltf模型
    vue/cli3引入cesium
  • 原文地址:https://www.cnblogs.com/d0usr/p/12560667.html
Copyright © 2011-2022 走看看