v-bind和v-model详解

Posted chujunqiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了v-bind和v-model详解相关的知识,希望对你有一定的参考价值。

1 v-bind

技术图片

技术图片

v-bind绑定属性::属性名 => v-bind:属性名

绑定class

数组::class="[active, line]"

对象::class="active: isActive , line: isLine"

绑定style

:style="color: fontColor"  (样式名:样式值)

data:

    fontColor:‘black‘

2 v-model

技术图片

技术图片

技术图片

    v-model的双向绑定原理:通过v-bind将model数据绑定进页面,然后又通过v-on绑定事件来监听页面的变化,并将变化了的数据重新绑定进model数据中。

v-model对表单的绑定:

单选框:
<label for="male">
<input type="radio" id="male" v-model="sex" value="男">男
</label>
-性别为sex-
<label for="female">
<input type="radio" id="female" v-model="sex" value="女">女
</label>

sex:‘男‘,//单选框绑定v-model 选中|不选中 对应 绑定的值 是|不是 对应的value
   
多选框(单个):
<label for="agree">
<input type="checkbox" id="agree" v-model="isAgree">同意协议
</label>
isAgree
<button :disabled="!isAgree">下一步</button>

isAgree:false,//单个多选框对应是布尔值 (即v-mode绑定的不是数组时,选中|不选中对应true|false)

多选框(多个):
<input type="checkbox" id="basketball" v-model="hobbies" value="篮球">篮球
<input type="checkbox" id="baseball" v-model="hobbies" value="棒球">棒球
<input type="checkbox" id="deskball" v-model="hobbies" value="桌球">桌球
爱好是hobbies

hobbies:[],//多个多选框对应的是数组 (v-model绑定的是数组时,选中|不选中对应的是向数组加入value|不加入value)

选项卡(单选):
<select name="singleSelect" v-model="fruit">
<option value="苹果">苹果</option>
<option value="香蕉">香蕉</option>
<option value="西瓜">西瓜</option>
</select>
单选水果为:fruit

fruit:‘香蕉‘,//选项卡单选,与单选框类似只能选单个 对应类型为str


选项卡(多选):
<select name="multipleSelect" v-model="fruits" multiple>
<option value="苹果">苹果</option>
<option value="香蕉">香蕉</option>
<option value="西瓜">西瓜</option>
</select>
多选水果为:fruits

fruits:[],//选项卡多选,与多个多选框类似能选多个 对应类型为数组

  实际开发中应用的v-model值绑定(从服务器请求的value):
<!--从服务器取得数据并渲染页面,选中的选项信息保存于List中-->
<label v-for="item in originalList" :for="item.id">
<input :id="item.id" type="checkbox" v-model="List" :value="item">item.value
</label>
List

originalList:[id:1,value:‘大西瓜‘,id:2,value:‘小苹果‘,id:3,value:‘臭榴莲‘],//从服务器取得的数据
List:[],//选中的选项的数据存放地 与v-model绑定

v-model事件修饰符:
1 v-model.lazy 只有按下enter或者失去光标时才会响应式更新数据
2 v-model.number 在输入框中无论输入什么都会被默认转化成string类型,用这个修饰符后number类型不会被转化
3 v-model.trim 如果输入的内容首尾有空格,则会自动去除空格

以上是关于v-bind和v-model详解的主要内容,如果未能解决你的问题,请参考以下文章

v-bind 和v-model 的区别

v-model和v-bind.sync的区别

数据单向绑定(v-bind:)和数据的双向绑定(v-model)

v-model与v-bind

v-model和v-bind的区别

vue单向以及双向数据绑定(v-bind和v-model使用)