博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue.js学习笔记五
阅读量:6825 次
发布时间:2019-06-26

本文共 2154 字,大约阅读时间需要 7 分钟。

hot3.png

表单输入绑定

基础用法

v-model指令在表单 input、textarea、select元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。

但v-model 本质上是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。

【注意】

v-model 会忽略所有表单元素的 value、checked、selected特性的初始值而总是将Vue实例的数据作为数据来源。应该通过JavaScript在组件的data选项中声明初始值。

对于需要使用输入法的语言,你会发现v-model不会在输入法组合文字过程中得到更新。如果想处理这个过程,请使用input事件。

# 文本

Message is: {

{ message }}

# 多行文本

Multiline message is:

{

{ message }}

【注意】

在文本区域插值 (<textarea></textarea>) 并不会生效,应用 v-model 来代替。

# 复选框

单个复选框,绑定到布尔值:

多个复选框,绑定到同一个数组:

Checked names: {
{ checkedNames }}
new Vue({  el: '#example-3',  data: {    checkedNames: []  }})

# 单选按钮

Picked: {
{ picked }}
new Vue({  el: '#example-4',  data: {    picked: ''  }})

# 选择框

单选时:

Selected: {
{ selected }}

如果 v-model 表达式的初始值未能匹配任何选项,<select> 元素将被渲染为“未选中”状态。在 iOS 中,这会使用户无法选择第一个选项。因为这样的情况下,iOS 不会触发 change 事件。因此,推荐提供一个值为空的禁用选项。

多选时(绑定到一个数组):

Selected: {
{ selected }}
new Vue({  el: '#example-6',  data: {    selected: []  }})

用 v-for 渲染的动态选项:

Selected: {
{ selected }}
new Vue({  el: '...',  data: {    selected: 'A',    options: [      { text: 'One', value: 'A' },      { text: 'Two', value: 'B' },      { text: 'Three', value: 'C' }    ]  }})

值绑定

对于单选按钮,复选框及选择框的选项,v-model 绑定的值通常是静态字符串 (对于复选框也可以是布尔值):

但是有时想把值绑定到Vue实例的一个动态属性上,这时可以用 v-bind 实现,并且这个属性的值可以不是字符串。

# 复选框

// 当选中时vm.toggle === 'yes'// 当没有选中时vm.toggle === 'no'

【注意】

这里的 true-value 和 false-value 特性并不会影响输入控件的 value 特性,因为浏览器在提交表单时并不会包含未被选中的复选框。如果要确保表单中这两个值中的一个能够被提交,(比如“yes”或“no”),请换用单选按钮。

# 单选按钮

// 当选中时vm.pick === vm.a // 可以是字符串或对象

# 选择框的选项

// 当选中时typeof vm.selected // => 'object'vm.selected.number // => 123

修饰符

.lazy 

默认情况是 v-model 在每次 input 事件触发后将输入框的值与数据进行同步。通过添加 .lazy 修饰符,从而转变为使用change事件进行同步:

.number

给 v-model 添加 number 修饰符,可以使输入值转为数值类型。

这通常很有用,因为即使在 type="number" 时,HTML 输入元素的值也总会返回字符串。

.trim

给 v-model 添加 trim 修饰符,可以使输入值的首尾空白字符自动过滤。

转载于:https://my.oschina.net/happyran/blog/1997581

你可能感兴趣的文章
骄傲狮子座的感情世界(图
查看>>
李青云老人的长寿秘诀【转】
查看>>
Springboot Thymeleaf 发邮件 将html内容展示在邮件内容中
查看>>
EasyUI datagrid 行编辑
查看>>
json概述及python处理json等数据类型
查看>>
[LeetCode] Range Sum Query - Immutable
查看>>
maven遇到的一些问题
查看>>
OC-Q&A
查看>>
BZOJ2434:[NOI2011]阿狸的打字机——题解
查看>>
BZOJ - 3963: [WF2011]MachineWorks
查看>>
第5件事 做一个有taste的产品人
查看>>
暂时记录
查看>>
MicroPython开发之物联网快速开发板
查看>>
Mysql分布式部署高可用集群方案
查看>>
PHP中常用的输出语句比较?
查看>>
windows下oracleSQLDevelpment连接ORA-12560解决办法
查看>>
android&nbsp;setBackgroundColor
查看>>
UVa11181 条件概率
查看>>
第一个Polymer应用 - (3)使用数据绑定
查看>>
<Linux> xm 命令
查看>>