八,事件处理器

监听事件
  可以用v-on 指令监听DOM 事件来触发一些javaScript
    <div id="example-1">
      <button v-on:click="counter += 1">增加1</button>
      <p>这个按钮被点击了{{ counter }} 次</p>
    </div>
    var example1 = new Vue({
      el: "#example-1"
      data: {
        counter: 0
      }
    })
方法事件处理器
    v-on 可以接收一个定义的方法来调用
      <div id="example-2">
        <butto v-on:click="greet">Greet</button>
      </div>
      var example2 = new Vue({
        el:'#example-2',
        data: {
           name: 'Vue.js'
        },
        methods: {
          greet: function (event) {
            alert('Hello' + this.name + '!')
            }
        }
      })
      example2.greet()
内联事件处理方法
  可以内联JavaScript语句
    <div id="example-3">
      <button v-on:click="say('hi')">Say hi</button>
      <button v-on:click="say('what')">Say what</button>
    </div>
    new Vue({
      el: '#example-3',
      methods: {
        alert(message)
      }
    })
    有时候也需要内联语句处理器中访问原生DOM事件 可以用特殊变了$event 把它传入方法:
    <button v-on:click="warn('For cannot be submitted ye.',$event)" >Submit</button>
      methods: {
        warn: function(message, event) {
          if(event) event.preventDefault()
              alert(message)
          }
      }
事件修饰符
    为v-on 提供了 事件修饰符 通过由(.)表示的的指令后缀来调用修饰符。
      .stop .prevent .capture .self .once
      // 防止事件冒泡
        <a v-on:click.stop="doThis"></a>
      // 提交事件不在重载页面
        <form v-on:submit.prevent="onSubmit"></form>
      // 修饰符可以串联
        <a v-on:click.stop.prevent="doThat"></a>
      // 只有修饰符
        <form v-on:submit.prevent></form>
      // 添加事件监听器时使用事件捕获模式
        <div v-on:click.capture="doTthis"></div>
      // 只当事件在该元素本身(而不是子元素)触发时触发回调
        <div v-on:click.self="doThat"></div>
按键修饰符
  在监听键盘事件时,vue允许 v-on 在监听键盘事件时添加按键修饰符
      // 只有在keyCode 是 13 是调用 vm.submit()
    <input v-on:keyup.13="submit">
      // 记住所有的 keyCode 比较困难, 所以Vue 为最常见的按键提供了别名:
    <input v-on:keyup.enter="submit">
    <input @keyup.enter="submit">
全部的按键名
  .enter .tab .delete .esc .space .up .down .left .right
  可以通过全局 config.keyCodes 对象自定义按键修饰符别名:
  // 可以使用 v-on:keyup.f1
  Vue.config.keyCodes.f1 = 112
按键修饰符
  可以用如下修饰符开启鼠标或键盘事件监听,使在按键按下时发生响应。
  .ctrl .alt .shift .meta
    <!-- Alt + C -->
      <input @keyup.alt.67="clear">
    <!-- Ctrl + Click -->
      <div @click.ctrl="doSomething">Do something</div>

九,表单控件绑定
基础用法
  用v-model 指令在表单控件元素上创建双向数据绑定。
    <input v-model="message" placeholder="edit me">
    <p>Message is:{{ message}}</p>
多行文本
    <span>Multiline message is:</span>
    <p style="white-space: pre">{{ message }}</p>
    <textarea v-model="message" placeholder="add multtiple lines"> </textarea>
复选框
  单个勾选框,逻辑值
    <input type="checkbox" id="checkbox" v-model="checked">
    <label for="checkbox">{{ checked}}</label>
多个勾选框,绑定到同一个数组
    <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
    <label for="jack">Jack</label>
    <input type="checkbox" id="john" value="john" v-model="checkedNames">
    <label for="jack">john</label>
    <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
    <label for="jack">Mike</label>
    <span>Checked names: {{checkedNames}}</span>

    new Vue({
      el:'...',
      data: {
        checkedNames: [ ]
      }
    })
单选按钮
    <input type="radio" id="one" value="One" v-model="picked">
    <lable for="one">One</lable>
    <input type="radio" id="two" value="Two" v-model="picked">
    <lable for="one">One</lable>
    <span>Picked: {{ picked }}</span>
选择列表
  单选列表:
    <select v-model="selected">
      <option>A</option>
      <option>B</option>
      <option>C</option>
    </select>
  多选列表(绑定到一个数组):
    <select v-model="selected" multiple>
      <option>A</option>
      <option>B</option>
      <option>C</option>
    </select>
    <br>
    <span>Selected: {{ selected }}</span>
动态选项,用v-for 渲染
    <select v-model="selected">
      <option v-for="opction in options" v-bind:value="option.value">
        {{ option.text }}
      </option>

    </select>
    <span>selected: {{ sekected}}</span>
    new Vue({
      el:'...',
      data: {
          selected: 'A',
          options: [
            {text:'One',value: 'A'},
            {text:'Two',value: 'B'},
            {text:'Three',value: 'C'}
          ]
      }
    })
绑定 value
  对于单选按钮,勾选框及选择列表, v-model 绑定的value 通常是静态字符串。
    // 当选中时 picked 为字符串 a
      <input type="radio" v-model="picked" value="a">
    // toggle 为 true 或 false
      <input type="checkbox" v-model="toggle">
    // 当选中时 selected 为字符串女abc
      <select v-mode="selected">
        <option value="abc">ABC</option>
      </select>
复选框
  <input type="checkbox" v-model="toggle" v-bind:true-value="a" v-bind:false-value="a">
    // 当选中时
  vm.toggle === vm.a
  vm.toggle === vm.b
等选按钮
    <input type="radio" v-model="pick" v-bind:value="a">
      // 当选中时
    vm.pcik === vm.a
选择列表设置
    <select v-model="selected">
      // 内联对象字面量
      <option v-bind:value="{number: 123}">123</option>
    </select>
      // 当选中时
    typeof vm.selected // object
    vm.selected.number //123
修饰符
  .lazy
     在默认情况下, v-model 在 input 事件中同步输入框的值与数据 (除了 上述 IME 部分),但你可以添加一个修饰符 lazy ,从而转变为在 change 事件中同步:
    // 在“change” 而不是在 "input" 时间中更新
    <input v-model.lazy="msg">
  .number
    如果想自动将用户的输入值转为 Number 类型(如果原值的转换结果为 NaN 则返回原值),可以添加一个修饰符 number 给 v-model 来处理输入值:

    <input v-model.number="age" type="number">
    因为在 type="number" 时 HTML 中输入的值也总是会返回字符串类型。
  .trim
    如果要自动过滤用户输入的首尾空格,可以添加 trim 修饰符到 v-model 上过滤输入:
    <input v-model.trim=msg>

VUE 入门基础(7)的更多相关文章

  1. Vue学习记录第一篇——Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  2. Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  3. vue入门基础知识点测试

    vue入门基础知识点测试 1.文本(值绑定){{var}}----控制<div></div>的值显示当前时间,且1秒更新一次.(可查阅 setinterval 函数,时间Dat ...

  4. Vue入门基础(火柴)

    前言 由于个人十分欣赏博友——小火柴的蓝色理想,他的博文我看了大多数,觉得十分的精彩,然而很多都是看后即忘.我想除了没有经常动手敲代码,更可能是在看的时候忽略了很多细节,因此打算把他的博文通通给“抄袭 ...

  5. VUE 入门基础(8)

    十,组件 使用组件 注册 可以通过以下这种方式创建一个Vue实例 new Vue({ el: '#some-element', }) 注册一个全局组件,你可以使用Vue.component(tagNa ...

  6. VUE 入门基础(4)

    四,计算属性 基础例子 <div id='example'> <p>0riginal message: "{{message}}"</p> &l ...

  7. 02 . Vue入门基础之条件渲染,列表渲染,事件处理器,表单控件绑定

    vue基础 声明式渲染 Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统 Example1 <!DOCTYPE html> <html> ...

  8. VUE 入门基础(9)

    十一,深入响应式原理 声明响应式属性 由于Vue不允许动态添加根级响应式属性,所以你必须在初始化实例钱声明根级响应式属性,哪怕只有一个空值. var vm = new Vue({ data:{ // ...

  9. VUE 入门基础(6)

    六,条件渲染 v-if 添加一个条件块 <h1 v-if="ok">Yes</h1> 也可以用v-else 添加else 块 <template> ...

随机推荐

  1. [PHP] - Laravel - CSRF token禁用方法

    前文 CSRF攻击和漏洞的参考文章: http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html Laravel默认是开启了CSRF功能, ...

  2. Excel 读取字符串引发的问题

    将EXCEL数据导出的时候如果同一列数据中既有文字,又有数字!读取时一列中要么文字丢失只剩下数字,要么数字丢失,只剩下文字,这是由第一行的数据类型决定的.出现这种问题是由于数据类型不统一造成的. 连接 ...

  3. TObject、Pointer、Interface的转换

    unit Unit4; ));   ));   ));   //将Obj转为接口   //LInf1 := ITest(Pointer(LObj1));       //无法转换了,丢失了接口信息   ...

  4. owin,webapi中将文件写入到response stream中

    首先在controller项目中添加一个类: using System; using System.Collections.Generic; using System.IO; using System ...

  5. Ajax服务请求原理 简单总结

    刚开始以为Ajax是一种新的语言,接触之后才知道,ajax是用于服务器交换数据并更新部分网页的Web应用程序的技术. 第一次看到Ajax请求代码时,感觉一脸萌逼,这些代码竟然把后台数据请求过来了,神奇 ...

  6. Java 和C/C++的“语法”上的差异!

    额其实认为语言语法之间是没有可比性的! 但是因为额曾经学过C/C++,而今又学Java,有赵本山说的话:“知识都学杂了!”,所以我个人总结一下,望提醒自己! Java C++ double 要用%f: ...

  7. C# 随机红包算法

    static void Main(string[] args) { ; ; double minAmount = 0.01; Random r = new Random(); ; i < num ...

  8. 无法打开登录所请求的数据库 "xxx"登录失败用户 'NT AUTHORITY\NETWORK SERVICE'

    解决:添加用户,选择NT AUTHORITY\SYSTEM登录名,选择当前数据库的架构. 勾选架构 勾选成员身份.如果不勾选,也会报异常:拒绝了对对象 'FW_ORG' (数据库 'ZW_DWSJ', ...

  9. 【巩固】Bootstrap笔记三

    这段笔记介绍了bootstrp中以下几点应用点: 警告框的使用 面板功能 运用chart.js制作图表 进度条的制作 媒体对象的制作 有一个元素如果有属性alert-dismissible" ...

  10. subline

    快捷键(preference->key bindings): [ { "keys": ["ctrl+d"], "command": & ...