v-model
用于绑定各种不同类型的输入,<textarea>
、<select>
元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title></title>
<script src="vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
<div id="test1">
<!-- 文本绑定 先定义变量再绑定-->
<p>Message is {{message}}</p>
<input v-model.lazy="message" placeholder="edit me"/> <!--.lazy 在发生change时间之后更新,不随input同步更新 .number把输入转换成数字-->
<br>
<!-- 多行文本绑定 -->
<span>Multiline message is:</span>
<p>{{message2}}</p>
<textarea v-model.trim ="message2" placeholder="input multiple lines"></textarea> <!-- textarea不支持插值表达式 <teextarea>{{message}}</textarea>错误!-->
<!--.trim除去输入内容两端空格 -->
<!-- 复选框 -->
<div>Please choose multiple ones:{{checkedNames}}</div>
<input type="checkbox" id="sandy" value ="sandy" v-model="checkedNames"/> <!--绑定的是value id用来设置标签等其他属性-->
<label for="sandy">Sandy</label>
<input type="checkbox" id="cheeks" value="cheeks" v-model="checkedNames"/>
<label for="cheeks">Cheeks</label>
<input type="checkbox" id="jack" value="jack" v-model="checkedNames">
<label for="jack">Jack</label>
<!-- 复选框 v-bind动态绑定变量值(除字符之外的数值(1/2)) -->
<div>Checkbox v-bind:{{toggle}}</div>
<input type="checkbox" v-model="toggle" :true-value="yes" :false-value="no"/> <!--true-value false-value仅支持和 v-model 配套使用-->
<!--单选按钮 -->
<div>Picked:{{picked}}</div>
<input type="radio" id="yes" value="yes" v-model="picked"/>
<label for="yes">Yes</label>
<input type="radio" id="no" value="no" v-model="picked"/>
<label for="no">No</label>
<!-- 单选 v-bind绑定 -->
<div>Radio v-bind:{{pick}}</div>
<input type="radio" name="choose" id="first" :value="first" v-model="pick"/> <!-- 单选框复选问题,如果radio同属于一个name就不会复选 -->
<input type="radio" name="choose" id="second":value="second" v-model="pick"/>
<!-- 选择器 -->
<div>Selected:{{selected}}</div>
<select v-model="selected" multiple> <!--multiple的意思是把选择的值绑定到一个数组????-->
<option disabled value="">Please select one</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
<!--option中使用v-for渲染-->
<div>Selected_options for array:{{selected_options}}</div>
<select v-model="selected_options">
<option v-for="option in options" :value="option.value">
{{option.text}}
</option>
</select>
<br>
<!-- 选择器中使用v-bind -->
<div>Slected v-bind:{{select_number}}</div>
<select v-model="select_number">
<option :value="{number:123}">123</option> <!-- selected 会被设为该对象字面量值 { number: 123 } -->
</select>
</div>
</div>
<script type = "text/javascript">
const vm = new Vue({
el : "#app",
data :{
message:'',//如果赋初值文本框内就显示初试不显示placeholder内容
message2:"", //多行文本绑定变量
checkedNames:[], //复选框绑定变量
yes:1,//复选框v-bind绑定变量
no:2,
toggle:1,
picked:"", //单选框绑定变量
pick:"", //单选框v-bind绑定变量
first:1,
second:2,
selected:[], //选择器绑定变量
selected_options:'One',
select_number:"",
options :([
{text:'One',value:'One'},
{text:'Two',value:'Two'},
{text:'Three',value:'Three'}
]),
},
});
vm.$watch('toggle',function(newVal,oldVal){
console.log(newVal, oldVal);
})
</script>
</body>
</html>