1.v-model:
你可以用 v-model 指令在表单 、 及 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。

2.v-model之文本框

 <div id="app">
        <p>输入框</p>
        <input type="text" style="color: red;" maxlength="10" v-model="msg1" placeholder="请任意发挥!" onkeyup='this.value = this.value.replace(/\D/gi,"")' dir="rtl">
        <p>您输入的是:{
  {msg1}}</p>
    </div>
    <script> let app = new Vue({
     el: "#app", data: {
     msg1: '' }, }) </script>
</body>

拓展:
1.文本框输入字数限制10个 –maxlength = "10"
2.输入颜色为红色--直接style样式
3.由右往左输入–dir="rtl"
4.输入限定为数字–注:用type = number可以实现,但是会产生副作用,比如maxlength会失效等等,不推荐使用,可以使用正则表达式。οnkeyup='this.value=this.value.replace(/\D/gi,"")
结果:

3.v-model之文本域:

  <div id="app">
        <p>文本域</p>
        <textarea v-model="msg" maxlength="10" name=" test " id="1" cols="30 " rows="10 " dir="rtl" style="color: blue;font-size: 30px; resize: none;"></textarea><span>您输入的内容:{
  {msg}}</span>

    </div>
    <script> let app = new Vue({
     el: "#app", data: {
     msg: '' } }) </script>
</body>

拓展
1.文本域禁止拖动— resize: none
2.输入内容字数限制 —maxlength
3.内容倒序显示并:—dir = "trl"

4.v-model之多选框:

 <div id="app">
        <p>假设以下都能实现,你会选择:</p>
        <input type="checkbox" id="c1" value="100万" v-model="checkboxArrays">
        <label for="c1" style="color: green;">100万</label>
        <input type="checkbox" id="c1" value="佳丽三千" v-model="checkboxArrays">
        <label for="c1" style="color: orange;">佳丽三千</label>
        <input type="checkbox" id="c1" value="死提姆永久超级VIP" v-model="checkboxArrays">
        <label for="c1" style="color: red;">死提姆永久超级VIP</label>
        <br>
        <span>恭喜你获得了{
  {checkboxArrays}},恭喜恭喜!</span>

    </div>
    <script> let app = new Vue({
     el: "#app", data: {
     checkboxArrays: [] } }) </script>

结果:

5.v-model之单选按钮:

 <div id="app" style="background-color:aquamarine;">
        <p>英雄正在推塔中,而女朋友来了一个电话,你会?</p>
        <input type="radio" id="r1" value="这是个正确的选择" v-model="radios">
        <label for="r1" style="color:green;font-size: 15px;"></label>
        <input type="radio" id="r2" value="等死吧,你~你你~~你等死吧!" v-model="radios">
        <label for="r2" style="color: orchid;font-size: 20px;">不接</label>
        <input type="radio" id="r3" value="我仿佛听到了Shutdown的声音!" v-model="radios">
        <label for="r3" style="color:red;font-size: 25px;">继续打游戏</label>
        <input type="radio" id="r3" value="恭喜你做了明智的选择!!" v-model="radios"> <img src="imgs/" alt="">
        <label for="r3" style="color:red;font-size: 30px;">毫不犹豫,接</label>
        <br>
        <span>
            <p style="color: fuchsia;font-size: 80px;">{
  {radios}}</p>
            </span>
    </div>
    <script> let app = new Vue({
     el: "#app", data: {
     radios: '' } }) </script>

注解:在该单选按钮中,value的值才是真正你选择时会触发的值,而在label中的值,仅仅是做为一种描述,静态显示在网页上,作为一种提示信息。
结果:

5.v-model之单选框:

<div id="app">
    <select v-model="selected">
        <option disabled value="">请选择你的最爱:</option>
        <option selected style="color: aqua; font-size: 20px;">打游戏</option>
        <option style="color: rebeccapurple; font-size: 30px;">偶尔打游戏</option>
        <option style="color:red;font-size: 40px;">一直打游戏</option>
      </select>
    <span>你选择了---></span> {
  { selected }}</span>
</div>
 let app = new Vue({
            el: "#app",
            data: {
                selected: "",

            }
        })
  • 注解:1.select中的value的值,是传到后台处理的值,并不会显示到页面
    2.若为多选需求时,在select中加上 multiple即可

结果:
6.v-model之动态渲染:

<body>
    <div id="app">
        <select v-model="selected">
            <option v-for="option in options" style="color: blue;;" v-bind:value="option.value">
             {
  { option.text }}
            </option>
          </select>

        <p>分数:</p>
        <p style="color: red;">{
  { selected }}</p>
    </div>
    <script> let app = new Vue({
     el: "#app", data: {
     selected: '100', options: [{
     text: '物理', value: '100' }, {
     text: '数学', value: '140' }, {
     text: '化学', value: '110' }] } }) </script>
</body>

注解:通过动态渲染的方式,可以为下拉框指定一个默认的选择项

结果:

over------------------------------------------------------------------------------------------