北风网-Vue.js 学习笔记(3)

第三章:事件

  第1节视频:事件处理

    一、Vue.js 使用 v-on 指令监听DOM事件来触发 JavaScript 回调函数。

      <input type = "button" v-on:click = "test" value = "按钮"  />

      methods:{

        test:function(){

          alert("HelloWorld");

        }

      }

    二、$event 参数

      1、事件回调函数可以传入 $event 这个事件对象

        <input type = "text" @keydown = "test($event)" />

        methods:{

          test:function($event){

            if($event.keyCode == 13){

              $event.target.blur();

            }

          }

        }

第2节视频:事件修饰符_1

  一、事件修饰符

    1、在事件处理程序中调用 event.preventDefault()或event.stopPropagation()是很常见 的。尽管我们可以在事件处理函数中轻松实现这点,但更好的方式是:事件处理函数只有纯粹的数据逻辑,而不是去处理DOM事件细节。

    2、为了解决这个问题,Vue为 v-on 提供了事件修饰符。通过由 “ . ” 来调用修饰符。

      .stop

      .prevent 

         .capture

      .self

         .once

    3、.stop修饰符用来阻止事件冒泡。

      <!-- 阻止单击事件冒泡 -->

                    <div @click = "test_1">

        <input type = "button" value = "测试" @click.stop = "test_2">

      </div>

    4、.prevent 修饰符取消事件的默认动作。

      <form v-on:submit.prevent = "onSubmit" method = "post" action = ".......">

        <input type = "submit" value =“提交”>

      </form>

第3节视频:事件修饰符_2

    1、.capture 修饰符捕获冒泡事件

      <div @click.capture = “test_1”>

        <input type = "button" value = "测试" @click = "test_2" >

      </div>

    2、.self 只在当前控件触发事件

      <div @click.self = "test_1">

        <input type = "button" value = "测试" @click = "test_2">

      </div>

    3、 .once 事件只会执行一次

      <div @click = "test_1">

        <input type = "button" value = "测试" @click.once = "test_2" >

      </div>

第4节视频:表单处理

  一、表单控件绑定:

    1、可以用 v-model 指令在表单控件上创建双向数据绑定

     <input type = "text" v-model = "username" />

    

    2、v-model 会忽略所有表单元素的 value 、checked、selected 特性的初始值,因为它会以模型层的数据作为初始值。

    data:{

      username:"Scott"

    }

    

    3、v-model 指令可以用来绑定复选框

      <input type = "ckeckbox" v-model = "sport" value = "足球" />足球

      <input type = "ckeckbox" v-model = "sport" value = "篮球" />篮球

      <input type = "ckeckbox" v-model = "sport" value = "羽毛球" />羽毛球

      <input type = "ckeckbox" v-model = "sport" value = "游泳" />游泳  

      <p>{{sport}}</p>

      data:{

        sport:[]

      }

    

    4、v-model 指令可以用来绑定单选按钮

      <input type = "radio" v-model = "sex" value = "男">男

      <input type = "radio" v-model = "sex" value = "女">女

      <input type = "radio" v-model = "sex" value = "保密">保密

      <p>{{sex}}</p>

      

      data:{

        sex:"保密"

      }

    5、v-model 指令可以用来绑定下拉列表

      <select v-model = "nation">

        <option value = "汉族">汉族</option>

        <option value = "藏族">藏族</option>

        <option value = "蒙古族">蒙古族</option>

        <option value = "回族">回族</option>

        <option value = "朝鲜族">朝鲜族</option>

      </select>

      <p>{{nation}}</p>

    

  二、lazy修饰符

    1、v-model 在 input 事件中同步输入框的数据,但可以添加一个 lazy 修饰符,从而转变为在 change 事件中同步

    <input type = "text" v-model.lazy = "username" />

    <p>{{username}}</p>

    

  三、number 修饰符

    1、如果想自动将用户的输入值转为 Number 类型,可以添加一个 number 修饰符

    <input type = "text" v-model.number =  "salary" />

    <p>{{salary}}</p>

  四、trim 修饰符

    1、如果要自动过滤用户输入的首尾空格,可以添加 trim 修饰符到 v-model 上过滤输入

    <input type = "text" v-model.trim = "address" />

    <p>{{address}}</p>

原文地址:https://www.cnblogs.com/chengshun/p/7782217.html