说明



原理

支持的表单元素
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><div id="app"></div><template id="my-app"><!-- 1.绑定textarea --><label for="intro">自我介绍<textarea name="intro" id="intro" cols="30" rows="10" v-model="intro"></textarea></label><h2>intro: {{intro}}</h2><!-- 2.checkbox --><!-- 2.1.单选框 --><label for="agree"><input id="agree" type="checkbox" v-model="isAgree"> 同意协议</label><h2>isAgree: {{isAgree}}</h2><!-- 2.2.多选框 --><span>你的爱好: </span><label for="basketball"><input id="basketball" type="checkbox" v-model="hobbies" value="basketball"> 篮球</label><label for="football"><input id="football" type="checkbox" v-model="hobbies" value="football"> 足球</label><label for="tennis"><input id="tennis" type="checkbox" v-model="hobbies" value="tennis"> 网球</label><h2>hobbies: {{hobbies}}</h2><!-- 3.radio --><span>你的爱好: </span><label for="male"><input id="male" type="radio" v-model="gender" value="male">男</label><label for="female"><input id="female" type="radio" v-model="gender" value="female">女</label><h2>gender: {{gender}}</h2><!-- 4.select --><span>喜欢的水果: </span><select v-model="fruit" multiple size="2"><option value="apple">苹果</option><option value="orange">橘子</option><option value="banana">香蕉</option></select><h2>fruit: {{fruit}}</h2></template><script src="https://unpkg.com/vue@next"></script><script>const App = {template: '#my-app',data() {return {intro: "Hello World",isAgree: false,hobbies: ["basketball"],gender: "",fruit: "orange" // 多选就会变数组}},methods: {commitForm() {axios}}}Vue.createApp(App).mount('#app');</script></body></html>


components 组件模版
值绑定

对于单选按钮,复选框及选择框的选项,v-model 绑定的值通常是固定的字符串 或 布尔值,但是v-model可以更改这些固定的值。
比如单选框选中就是true,没选中就是false。现在可以通过绑定一个值,改变这个默认,选中就是A,没选中就是B
<template><div><div v-for="(item, index) of options"><input :id="options[index].text" type="radio" v-model="inputed" v-bind:value="options[index].value" /><label :for="options[index].text">{{ options[index].text }}</label></div><br /><span>动态选项: {{ inputed }}</span></div></template><script>export default {data() {return {inputed: '',options: [{ text: 'One', value: 'A' },{ text: 'Two', value: 'B' },]};}};</script>
修饰符
.lazy 不实时更新

.number 转换成数字

.trim 过滤首尾空白字符

======================
源码实现

