持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情juejin.cn/post/714765…
今天学习了v-model命令,学的也是零零碎碎,笔记记得也不是很齐全,大家凑合看看,哪里不对的,记得点评点评哦!!!
v-model可以直接获取表单里的数据。- 注意:如果在input里设置默认值,使用了v-model,默认值就不生效了。如果想设置默认值,可以变通一下给v-model里的
username设置默认值。 - vue里也像react一样写受控组件,如下图:
v-model如果输入框里输入中文时,值不会更新,必须等整个拼音输入完成之后才会显示。
- 多行文本框也可以使用v-model,
- 注意:如果复选框只有一个,存进去的是布尔值,如果有多个复选框的话,是以数组的形式存储的,绑定的是数组。
- 单选按钮:点击的哪个状态里存的就是哪个,没有什么特殊的。
- 下拉菜单:选中哪个,哪个值就跑到v-model="menu"的menu(它是data里的数据)里了。
- 以下几个修饰符,专门针对v-model绑定
.lazyv-model本来相当于input事件,但加了该修饰符,相当于把input事件改为了onChange事件,失去焦点时才触发。.number将表单里的字符串类型的值,自动改为number类型,存到状态里。注意只有在 纯数字的时候才会转换,不是纯数字不转换,它会自己判断的。原理是内部封装使用的是parseFloat()方法进行封装。.trim去除input的value中首尾空格。 这三个修饰符是允许一起使用的。
v-model原理:
- 它使用了onChange或onInput事件,如果input项的value值变了,就把值存到v-model里了
- v-model是onInput和value组合在一起的语法糖。 因为v-model相当于受控组件,把状态和input的默认值value联系起来。
- 还可以在组件上使用。用它主要是来实现传值。利用它可以把子组件中的数据传给父组件。
- 下拉列表是onChange事件,不能只是onInput事件。