v-model
表示和表单输入域的值绑定, 适用于 input
, textarea
, select
标签, 即普通文本输入域, 多行文本输入域, 单选按钮, 复选按钮, 下拉选择. 有双向绑定的效果v-text
表示 dom 节点内的普通文本, 与双大括号 {{message}}
等效, 只是单向绑定, 即修改变量值会影响页面展示, 但是页面展示内容改变, 不会影响 data 变量的值. 不会有 xss 风险v-html
表示 dom 节点内的 html 文本, 与 v-text
类似, 不过会将里面的内容认为 html 标签来展示, 注意如果是用户输入的, 有 xss 风险
<div id="app" v-cloak>
<div>
<input type="text" v-model="message"/>
</div>
<div>
<textarea v-model="message">这里的值会被忽略</textarea>
</div>
<div>
<input type="radio" name="radioGroup" id="radio-1" value="1" v-model="radioValue"/>
<label for="radio-1">单选值 1</label>
<input type="radio" name="radioGroup" id="radio-2" value="2" v-model="radioValue"/> <label for="radio-2">单选值 2</label>
<input type="radio" name="radioGroup" id="radio-3" value="3" v-model="radioValue"/> <label for="radio-3">单选值 3</label>
</div>
<div>
当前选中的单选值: {{radioValue}}
</div>
<div>
<input type="checkbox" name="checkboxGroup" id="checkbox-1" value="1" v-model="checkboxValue"/><label for="checkbox-1">复选值 1</label>
<input type="checkbox" name="checkboxGroup" id="checkbox-2" value="2" v-model="checkboxValue"/> <label for="checkbox-2">复选值 2</label>
<input type="checkbox" name="checkboxGroup" id="checkbox-3" value="3" v-model="checkboxValue"/> <label for="checkbox-3">复选值 3</label>
</div>
<div>
当前选中的复选值: {{checkboxValue}}
</div>
<div>
<select v-model="selectValue">
<option value="1">选项1</option>
<option value="2">选项2</option>
<option value="3">选项3</option>
</select>
</div>
<div>
当前下拉选择的值: {{selectValue}}
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: '这里一条消息',
radioValue: 2,
checkboxValue: [2, 3],
selectValue: 2,
}
});
</script>