Vue 2.x教程之基础API(4)

<!-- 阻止单击事件冒泡 --> <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="doThis">...</div> <!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 --> <div v-on:click.self="doThat">...</div> <!-- 点击事件将只会触发一次 2.1.4--> <a v-on:click.once="doThis"></a> <!-- 组件中的原生事件 --> <my-component @click.native="onClick"></my-component>

按键修饰符

监听键盘按下的键值

监听keyCode

<!-- 只有在 keyCode 是 13 时调用 vm.submit() --> <input v-on:keyup.13="submit">

常用按键别名

.enter

.tab

.delete (捕获 “删除” 和 “退格” 键)

.esc

.space

.up

.down

.left

.right

2.1.0

.ctrl

.alt

.shift

.meta

<!-- 同上 --> <input v-on:keyup.enter="submit">

按键组合

<!-- Alt + C --> <input @keyup.alt.67="clear">

所有的 Vue.js 事件处理方法和表达式都严格绑定在当前视图的 ViewModel 上

当一个 ViewModel 被销毁时,所有的事件处理器都会自动被删除。你无须担心如何自己清理它们。

八、表单输入绑定

使用 v-modal 给表单控件绑定相关数据(双向绑定)

v-modal 是一个语法糖

<input v-model="something"> // 等同于 <input v-bind:value="something" v-on:input="something = $event.target.value">

基本输入

// 文本框 <input v-model="message" placeholder="edit me"> // 文本域(支持换行) <textarea v-model="message" placeholder="add multiple lines"></textarea> // 复选框 // 单选(返回 true/false ) <input type="checkbox" v-model="checked"> <label for="checkbox">{{ checked }}</label> // 多选 (返回一个数组 ['jack', 'john']) <input type="checkbox" value="Jack" v-model="checkedNames"> <label for="jack">Jack</label> <input type="checkbox" value="John" v-model="checkedNames"> <label for="john">John</label> <input type="checkbox" value="Mike" v-model="checkedNames"> <label for="mike">Mike</label> <br> <span>Checked names: {{ checkedNames }}</span> //单选框 (返回选中的值) <input type="radio" value="One" v-model="picked"> <label for="one">One</label> <br> <input type="radio" value="Two" v-model="picked"> <label for="two">Two</label> // 下拉框 // 单选 (返回选中的值) <select v-model="selected"> <option>A</option> <option>B</option> <option>C</option> </select> // 多选(返回一个数组 ['A','B']) <select v-model="selected" multiple> <option>A</option> <option>B</option> <option>C</option> </select>

当有选项有 value 属性时,选中时,返回 value, 当属性没有 value 时,选中时返回字符串或 true/false

<select v-model="selected"> <option v-for="option in options" v-bind:value="option.value"> {{ option.text }} </option> </select>

绑定动态的value

v-model 绑定的 value 通常是静态字符串,对于 radio、checkbox、select,可以动态的使用v-bind设置value

<input type="checkbox" v-model="toggle" v-bind:true-value="a" v-bind:false-value="b" > // 当选中时 vm.toggle === vm.a // 当没有选中时 vm.toggle === vm.b

修饰符

v-modal 的修饰符 .lazy、 .number、.trim

<!-- 在 "change" 而不是 "input" 事件中更新 --> <input v-model.lazy="msg" > // 自动将用户的输入值转为 Number 类型(如果原值的转换结果为 NaN 则返回原值) <input v-model.number="age" type="number"> // 过滤用户输入的首尾空格 <input v-model.trim="msg">

自定义输入组件

使用 v-modal 自定义输入组件

前提条件,组件必须有 value 属性, 在有新的value时,可通过 input 事件获取更新的值。

自定义的货币输入组件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwzyzs.html