v-bind
官方对v-bind的介绍式:动态地绑定一个或多个 attribute,或一个组件 prop 到表达式。
在绑定 class 或 style attribute 时,支持其它类型的值,如数组或对象。可以通过下面的教程链接查看详情。
在绑定 prop 时,prop 必须在子组件中声明。可以用修饰符指定不同的绑定类型。
v-model
v-model本质其实是一个语法糖,其实v-model就相当于 v-bind绑定一个value属性,然后v-on给该元素绑定input事件。
<input v-model="test">
就相当于
<input :value="test" v-on:input="test = $event.target.value">
双向数据绑定v-model一般用在表单控件上
v-model 在内部为不同的输入元素使用不同的 property 并抛出不同的事件
限制于:
-
<input> <select> <textarea> - components
text 和 textarea 元素使用 value property 和 input 事件;
checkbox 和 radio 使用 checked property 和 change 事件
select 字段将 value 作为 prop 并将 change 作为事件
当你需要时,你甚至可以将v-model与自定义组件一起使用。
v-model也可以和.lazy, .trim 和.number这些修饰符一起使用
小结: v-bind是一个单向数据绑定,映射关系:**Model->View,**我们不需要进行额外的DOM操作,只需要进行Model的操作就可以实现视图的联动更新
v-model是一个双向数据绑定,映射关系:View接受的数据,传给model,model的数据再传给view。把Model绑定到View的同时也将View绑定到Model上,这样就既可以通过更新Model来实现View的自动更新,也可以通过更新View来实现Model数据的更新。所以,当我们用JavaScript代码更新Model时,View就会自动更新,反之,如果用户更新了View,Model的数据也自动被更新了
|