根据官方文档
v-model 两种情况示例
-
使用在表单元素上
<input v-model="message" placeholder="edit me">
以上等价于
<input v-bind:value='message' @input='message=$event.target.value'>
对于input元素,默认使用
value
property 和input
事件。每当输入框内容发生变化时,触发input事件,将最新的value传给message。对不同元素,默认使用的东西不同
-
使用在组件上
一个组件上的 v-model 默认会利用名为
value
的 prop 和名为input
的事件父组件
<my-comp v-model='xxx'/> 以上默认等价于 <my-comp v-bind:value='xxx' @input='xxx=argument[0]'/>
子组件
<input:value="value" @input="$emit('input', $event.target.value)">
也可通过model选项指定prop和event
model: { prop: 'checked', event: 'change' }
则父组件的v-model的等价形式随之变化,而子组件所触发的事件也需要改变。
与.sync的比较
前面写过一篇浅析.sync修饰符
两者功能十分相似,都是用来实现双向绑定。
两者主要区别在于:
- .sync不能用于表单元素上,v-model可以
- 可在同一个元素上重复使用.sync绑定多个变量,但v-model只能绑定一个
- .sync所监听的事件必须是'update:propName'
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!