Vue.js中v-model指令的用法介紹
一、v-model指令
v-model 用來(lái)獲取表單元素的值。對(duì)應(yīng)input輸入框獲取的是輸入的值,單選按鈕、復(fù)選框、下拉框獲取的是選擇的狀態(tài)。
使用v-model可以在表單控件或者組件上創(chuàng)建雙向綁定。
代碼示例如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>v-model指令</title>
<!--引入vue.js-->
<script src="node_modules/vue/dist/vue.js" ></script>
<script>
window.onload=function(){
// 構(gòu)建vue實(shí)例
new Vue({
el:"#my",
data:{
inputValue:"hello world",
chkState:true, //默認(rèn)為true
chkArray:["1"], //處理成組的復(fù)選框需要定義一個(gè)數(shù)組,對(duì)應(yīng)每個(gè)CheckBox的value值,這里默認(rèn)第二個(gè)選中
chkLists:[{displayName:"科普讀物",value:"0"},
{displayName:"中小學(xué)教材",value:"1"},
{displayName:"計(jì)算機(jī)科學(xué)",value:"2"}],
rdoCheck:"1",
// 動(dòng)態(tài)處理radio
radioLists:[{name:"Gender",value:"1",displayName:"男"},
{name:"Gender",value:"2",displayName:"女"}],
sectionValue:"香蕉", // 沒(méi)有value值,默認(rèn)值就是name的值
sectionValue1:"0",
optionLists:[{value:"0",displayName:"蘋(píng)果"},
{value:"1",displayName:"香蕉"},
{value:"2",displayName:"葡萄"}]
},
// 方法
methods:{
},
filters:{
toShowCheckBoxState:function(value){
return value==true?"選中":"未選中"
}
}
})
}
</script>
</head>
<body>
<div id="my">
<!--表單輸入框 當(dāng)inputValue的值為123的時(shí)候禁止輸入-->
<input type="text" v-model="inputValue" :disabled="inputValue==123">{{inputValue}}
<!--復(fù)選框 v-model 當(dāng)前的狀態(tài):true或者false-->
<div>
<input type="checkbox" v-model="chkState">當(dāng)前選中狀態(tài):{{chkState | toShowCheckBoxState}}
</div>
<!--多個(gè)復(fù)選框 組 靜態(tài)顯示-->
<div>
<input type="checkbox" v-model="chkArray" value="0">唱歌
<input type="checkbox" v-model="chkArray" value="1">跳舞
<input type="checkbox" v-model="chkArray" value="2">打籃球
<p>當(dāng)前選中的value值:{{chkArray}}</p>
</div>
<!--復(fù)選框 動(dòng)態(tài)顯示-->
<div>
<ul>
<li v-for="list in chkLists">
<input type="checkbox" v-model="chkArray" :value="list.value">{{list.displayName}}
</li>
</ul>
</div>
<!--單選框 靜態(tài)顯示 -->
<div>
<input type="radio" v-model="rdoCheck" name="Gender" value="1">男
<input type="radio" v-model="rdoCheck" name="Gender" value="2">女
<p>{{rdoCheck}}</p>
</div>
<!--單選框 動(dòng)態(tài)顯示-->
<div>
<ul>
<li v-for="list in radioLists">
<input type="radio" v-model="rdoCheck" :name="list.name" :value="list.value">{{list.displayName}}
</li>
</ul>
<p>{{rdoCheck}}</p>
</div>
<!--下拉框 靜態(tài)顯示 -->
<div>
<select v-model="sectionValue">
<option>蘋(píng)果</option>
<option>香蕉</option>
<option>葡萄</option>
</select>
<p>{{sectionValue}}</p>
</div>
<!--下拉框 靜態(tài)顯示 -->
<div>
<select v-model="sectionValue1">
<option value="0">蘋(píng)果</option>
<option value="1">香蕉</option>
<option value="2">葡萄</option>
</select>
<p>{{sectionValue1}}</p>
</div>
<!--下拉框 靜態(tài)顯示 -->
<div>
<select v-model="sectionValue1">
<option v-for="list in optionLists" :value="list.value">{{list.displayName}}</option>
</select>
<p>{{sectionValue1}}</p>
</div>
</div>
</body>
</html>二、v-model指令實(shí)例
下面代碼利用v-model指令實(shí)現(xiàn)全選的功能:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>v-model指令</title>
<!--引入vue.js-->
<script src="node_modules/vue/dist/vue.js" ></script>
<script>
window.onload = function(){
var vm =new Vue({
el:'#my',
data:{
checkAll: {name:'全選',check:false},
lists:[{name:'小米',check:true},
{name:'華為',check:false},
{name:'蘋(píng)果',check:false},
{name:'中興',check:false},
{name:'OPPO',check:false}]
},
methods: {
checkAllChange:function(){
vm.lists.forEach(function(item){
item.check = vm.checkAll.check;
});
},
curChange:function(){
//true的狀態(tài)
var curTure = this.lists.filter(function(item){
return item.check ==true;
});
curTure.length == this.lists.length ? this.checkAll.check = true : this.checkAll.check = false ;
}
}
})
}
</script>
</head>
<body>
<div id='my'>
<input type="checkbox" v-model="checkAll.check" @change="checkAllChange()">
<label>{{checkAll.name}} {{checkAll.check}}</label>
<ul>
<li v-for="list in lists">
<input type="checkbox" v-model="list.check" @change="curChange()">
<label>{{list.name}} {{list.check}}</label>
</li>
</ul>
</div>
</body>
</html>以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue實(shí)施重新發(fā)布和軟件熱更新的經(jīng)驗(yàn)分享
在Web應(yīng)用的開(kāi)發(fā)周期中,版本管理和軟件熱更新是一個(gè)不可或缺的話題,隨著Vue.js框架的流行,越來(lái)越多的應(yīng)用程序選擇使用Vue來(lái)構(gòu)建前端,本文將探討在Vue應(yīng)用中實(shí)施重新發(fā)布和熱更新的最佳實(shí)踐,需要的朋友可以參考下2024-09-09
使用electron將vue-cli項(xiàng)目打包成exe的方法
今天小編就為大家分享一篇使用electron將vue-cli項(xiàng)目打包成exe的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Vue2.0 給Tab標(biāo)簽頁(yè)和頁(yè)面切換過(guò)渡添加樣式的方法
下面小編就為大家分享一篇Vue2.0 給Tab標(biāo)簽頁(yè)和頁(yè)面切換過(guò)渡添加樣式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
Vue實(shí)現(xiàn)仿iPhone懸浮球的示例代碼
這篇文章主要介紹了Vue實(shí)現(xiàn)仿iPhone懸浮球的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
vue element ui使用選擇器實(shí)現(xiàn)地區(qū)選擇兩種方法
這篇文章主要給大家介紹了關(guān)于vue element ui使用選擇器實(shí)現(xiàn)地區(qū)選擇的兩種方法,Element UI是一套基于Vue.js開(kāi)發(fā)的UI組件庫(kù),其中包含了地區(qū)選擇器(Cascader)組件,需要的朋友可以參考下2023-09-09
vue 對(duì)象添加或刪除成員時(shí)無(wú)法實(shí)時(shí)更新的解決方法
這篇文章主要介紹了vue 對(duì)象添加或刪除成員時(shí)無(wú)法實(shí)時(shí)更新的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
vue解決花括號(hào)數(shù)據(jù)綁定不成功的問(wèn)題
今天小編就為大家分享一篇vue解決花括號(hào)數(shù)據(jù)綁定不成功的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10

