如何理解Vue的v-model指令的使用方法


Posted in Javascript onJuly 19, 2018

本文主要讲解v-model指令,主要包括HTML元素的v-model和组件上的v-model两种,用四个简单的案例介绍v-model的使用。

案例一:HTML元素的v-model -输入框(text)

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>v-model指令</title>
    <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script>
  </head>
  <body>
    <div id="app4">
      {{price}}<br>
      <input v-model="price"><!-- 下行注释的语法糖 -->
      <!-- <input :value="price" @input="price = $event.target.value"> -->
    </div>
    <script>
      new Vue({
        el: '#app4',
        data: {
          price: '20'
        }
      });
    </script>
  </body>
</html>

如何理解Vue的v-model指令的使用方法

案例二: 定制组件的v-model - 输入框(text)

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>v-model指令</title>
    <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script>
  </head>
  <body>
    <div id="app3">
      {{price}}
      <my-input v-model="price"></my-input><!-- 下行注释的语法糖 -->
      <!-- <my-input :value="price" @input="val => {price = val}"></my-input> -->
    </div>
    <script>
      Vue.component('my-input', {
        template: '<div></span><input type="text" ref="input" :value="value" @input="doThis"/></div>',
        props: {
          value: String
        },
        methods: {
          doThis() {
            this.$emit('input', this.$refs.input.value);
          }
        }
      });
      new Vue({
        el: '#app3',
        data: {
          price: '10'
        }
      });
    </script>
  </body>
</html>

如何理解Vue的v-model指令的使用方法

案例三: 定制组件的v-model - 复选框(checkbox) - 2.2.0 新增

<!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>v-model指令</title>
      <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script>
    </head>
    <body>
      <div id="app2">
        {{fruit}}<!-- 观测数据变化 -->
        <my-checkbox v-model="fruit.apple" value="apple"></my-checkbox><!-- 下行注释的语法糖 -->
        <!-- <my-checkbox :checked="fruit.apple" @change="val => {fruit.apple = val}" value="apple"></my-checkbox> -->
      
        <my-checkbox v-model="fruit.peach" value="peach"></my-checkbox><!-- 下行注释的语法糖 -->
        <!-- <my-checkbox :checked="fruit.peach" @change="val => {fruit.peach = val}" value="peach"></my-checkbox> -->
      </div>
      <script>
        Vue.component('my-checkbox', {
          template: '<div><span>{{value}}</span><input type="checkbox" :checked="checked" @change="doThis" :value="value"/></div>',
          model: {
            prop: 'checked',
            event: 'change'
          },
          props: {
            checked: Boolean,
            value: String
          },
          methods: {
            doThis() {
              this.$emit('change', !this.checked);
            }
          }
        });
        new Vue({
          el: '#app2',
          data: {
            fruit: {//数据
              apple: true,
              peach: false
            }
          }
        });
      </script>
    </body>
  </html>

如何理解Vue的v-model指令的使用方法

案例四: 定制组件的v-model - 单选按钮(radio) -2.2.0 新增

<!DOCTYPE html>

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>v-model指令</title>
  <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script>
</head>
<body>
  <div id="app">
    {{fruit}}<!-- 观测数据变化 -->
    <my-radio v-model="fruit" value="apple" name="myFruit"></my-radio><!-- 下行注释的语法糖 -->
    <!-- <my-radio :checked="fruit" @change="val => {fruit = val}" value="apple"></my-radio> -->
    
    <my-radio v-model="fruit" value="peach" name="myFruit"></my-radio><!-- 下行注释的语法糖 -->
    <!-- <my-radio :checked="fruit" @change="val => {fruit = val}" value="peach"></my-radio> -->
  </div>
  <script>
    Vue.component('my-radio', {
      template: '<div><span>{{value}}</span><input :name="name" type="radio" ref="radio" :checked="checked===value" @change="doThis" :value="value"/></div>',
      model: {
        prop: 'checked',
        event: 'change'
      },
      props: {
        checked: String,
        value: String,
        name: String
      },
      methods: {
        doThis() {
          this.$emit('change', this.$refs.radio.value);
        }
      }
    });
    new Vue({
      el: '#app',
      data: {
        fruit: 'peach'//数据
      }
    });
  </script>
</body>
</html>

如何理解Vue的v-model指令的使用方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript使用isNaN()函数判断变量是否为数字
Sep 21 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
May 18 Javascript
微信小程序 条件渲染详解
Oct 09 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
Oct 13 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
jQuery轻松实现无缝轮播效果
Mar 22 jQuery
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
解决在Bootstrap模糊框中使用WebUploader的问题
Mar 22 Javascript
vue实现路由懒加载的3种方法示例
Sep 01 Javascript
vue实现简单加法计算器
Oct 22 Javascript
梳理一下vue中的生命周期
Dec 30 Vue.js
JavaScript实现H5接金币功能(实例代码)
Feb 22 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
Jul 19 #Javascript
微信小程序自定义对话框弹出和隐藏动画
Jul 19 #Javascript
浅谈Vue初学之props的驼峰命名
Jul 19 #Javascript
解决vue-cli3 使用子目录部署问题
Jul 19 #Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 #Javascript
微信小程序实现分享到朋友圈功能
Jul 19 #Javascript
微信小程序实现自定义加载图标功能
Jul 19 #Javascript
You might like
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
php利用header函数下载各种文件
2016/08/24 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
Bootstrap每天必学之前端开发框架
2015/11/19 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
js 函数性能比较方法
2020/08/24 Javascript
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
pygame学习笔记(4):声音控制
2015/04/15 Python
python正则表达式之作业计算器
2016/03/18 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
德国高尔夫商店:Par71.de
2020/11/29 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
战友聚会主持词
2014/04/02 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
主要领导对照检查材料
2014/08/26 职场文书
创业计划书之网吧
2019/10/10 职场文书
Python实现滑雪小游戏
2021/09/25 Python
Java中API的使用方法详情
2022/04/06 Java/Android