1、v-model:双向数据绑定的实现原理     等同于一个  v-bind  加   v-on

<div id="app">
<!-- <input type="text" v-model="message"> -->
<input type="text" :value="message" @input="message=$event.target.value">
<h2>{{message}}</h2>
</div>

2、v-model 结合radio类型的使用

    <label for="man">
<input type="radio" id="man" value="男" v-model="sex">
</label>
<label for="Wman">
<input type="radio" id="Wman" value="女" v-model="sex">
</label>
<h2>你选择的性别是:{{sex}}</h2>

3、v-model结合checkbox的使用

1、单选框

    <!-- checkbox 单选框 -->
<label for="agree">
<input type="checkbox" id="agree" v-model="ischange">同意协议
</label>
<h2>你选择的是:{{ischange}}</h2>
<button :disabled="!ischange">下一步</button><br><br><br>

2、多选框

    <!-- checkbox 多选框 -->
<input type="checkbox" value="篮球" v-model="hobbies">篮球
<input type="checkbox" value="足球" v-model="hobbies">足球
<input type="checkbox" value="羽毛球" v-model="hobbies">羽毛球
<input type="checkbox" value="兵乓球" v-model="hobbies">兵乓球
<input type="checkbox" value="排球" v-model="hobbies">排球
<h2>你的爱好是:{{hobbies}}</h2>

4、v-model结合select的使用

1、单选框

    <!-- select  单选 -->
<select name="" id="" v-model="fruit">
<option value="西瓜">西瓜</option>
<option value="苹果">苹果</option>
<option value="香蕉">香蕉</option>
<option value="草莓">草莓</option>
</select>
<h2>你选择的水果是:{{fruit}}</h2><br><br>

2、多选框

    <!-- select  多选 -->
<select name="" id="" v-model="fruits" multiple>
<option value="西瓜">西瓜</option>
<option value="苹果">苹果</option>
<option value="香蕉">香蕉</option>
<option value="草莓">草莓</option>
</select>
<h2>你选择的水果是:{{fruits}}</h2>

5、值绑定 :动态绑定Value的值

    <!-- 值绑定 -->
<label :for="item" v-for="item in fruitHobbies">
<input type="checkbox" :id="item" :value="item" v-model="hobbies">{{item}}
</label>

6、v-model修饰符的使用

1、lazy   作用:当文本框失去焦点或按  enter  的时候,v-model 才会执行变量的更新

    <!-- 1、lazy修饰符 -->
<label for="active">
<input type="text" id="active" v-model.lazy="message">
</label>
<h2>{{message}}</h2>

2、number 作用:把数据类型转换乘Number类型

    <!-- 2、number修饰符 -->
<!-- 当type的类型为number类型的时候,v-model绑定的值自动变成String类型 -->
<input type="number" v-model.number="age">
<h2>{{age}}---{{typeof(age)}}</h2>

3、、trim  作用:消除字符串连边的空格

    <!-- 3、trim 修饰符 -->
<input type="text" v-model="trim">
<h2>{{trim}}</h2>

*******完整代码*****

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./js/vue.js"></script>
</head>
<div id="app">
<!-- <input type="text" v-model="message"> -->
<input type="text" :value="message" @input="message=$event.target.value">
<h2>{{message}}</h2><br> <label for="man">
<input type="radio" id="man" value="男" v-model="sex">
</label>
<label for="Wman">
<input type="radio" id="Wman" value="女" v-model="sex">
</label>
<h2>你选择的性别是:{{sex}}</h2><br> <!-- checkbox 单选框 -->
<label for="agree">
<input type="checkbox" id="agree" v-model="ischange">同意协议
</label>
<h2>你选择的是:{{ischange}}</h2>
<button :disabled="!ischange">下一步</button><br><br><br> <!-- checkbox 多选框 -->
<input type="checkbox" value="篮球" v-model="hobbies">篮球
<input type="checkbox" value="足球" v-model="hobbies">足球
<input type="checkbox" value="羽毛球" v-model="hobbies">羽毛球
<input type="checkbox" value="兵乓球" v-model="hobbies">兵乓球
<input type="checkbox" value="排球" v-model="hobbies">排球
<h2>你的爱好是:{{hobbies}}</h2><br><br><br> <!-- select 单选 -->
<select name="" id="" v-model="fruit">
<option value="西瓜">西瓜</option>
<option value="苹果">苹果</option>
<option value="香蕉">香蕉</option>
<option value="草莓">草莓</option>
</select>
<h2>你选择的水果是:{{fruit}}</h2><br><br>
<!-- select 多选 -->
<select name="" id="" v-model="fruits" multiple>
<option value="西瓜">西瓜</option>
<option value="苹果">苹果</option>
<option value="香蕉">香蕉</option>
<option value="草莓">草莓</option>
</select>
<h2>你选择的水果是:{{fruits}}</h2><br><br> <!-- 值绑定 -->
<label :for="item" v-for="item in fruitHobbies">
<input type="checkbox" :id="item" :value="item" v-model="hobbies">{{item}}
</label><br><br> <!-- v-model 修饰符 的使用 -->
<!-- 1、lazy修饰符 -->
<label for="active">
<input type="text" id="active" v-model.lazy="message">
</label>
<h2>{{message}}</h2><br> <!-- 2、number修饰符 -->
<!-- 当type的类型为number类型的时候,v-model绑定的值自动变成String类型 -->
<input type="number" v-model.number="age">
<h2>{{age}}---{{typeof(age)}}</h2><br> <!-- 3、trim 修饰符 -->
<input type="text" v-model="trim">
<h2>{{trim}}</h2>
</div> <body>
<script>
let vm = new Vue({
el: '#app',
data: () => ({
message: 'v-model实现原理',
sex: '男',
age:0,
ischange: true,
hobbies: [],
fruit: '香蕉',
fruits: [],
fruitHobbies: ['西瓜', '草莓', '香蕉', '苹果', '哈密瓜'],
trim:' 去除字符串两边的空格,控制台才能看出来 '
}),
methods: {}
})
</script>
</body> </html>

vue---v-model的详细解答的更多相关文章

  1. Vue2全家桶之一:vue-cli(vue脚手架)超详细教程

    本文转载于:https://www.jianshu.com/p/32beaca25c0d   都说Vue2简单上手容易,的确,看了官方文档确实觉得上手很快,除了ES6语法和webpack的配置让你感到 ...

  2. vue-cli(vue脚手架)超详细教程

          都说Vue2简单上手容易,的确,看了官方文档确实觉得上手很快,除了ES6语法和webpack的配置让你感到陌生,重要的是思路的变换,以前用jq随便拿全局变量和修改dom的锤子不能用了,vu ...

  3. vue对比其他框架详细介绍

    vue对比其他框架详细介绍 对比其他框架 — Vue.jshttps://cn.vuejs.org/v2/guide/comparison.html React React 和 Vue 有许多相似之处 ...

  4. office web apps安装部署,配置https,负载均衡(七)配置过程中遇到的问题详细解答

    该篇文章,是这个系列文章的最后一篇文章,该篇文章将详细解答owa在安装过程中常见的问题. 如果您没有搭建好office web apps,您可以查看前面的一系列文章,查看具体步骤: office we ...

  5. CF468C Hack it! 超详细解答

    CF468C Hack it! 超详细解答 构造+数学推导 原文极简体验 CF468C Hack it! 题目简化: 令\(f(x)\)表示\(x\)在十进制下各位数字之和 给定一整数\(a\)构造\ ...

  6. 适用于小白:VSCode搭建Vue项目,最详细的搭建步骤哦

    在vscode上搭建一个vue项目---初学总结. 1.假设Vscode.nodejs等已经安装好了. 2.全局安装vue-cli,vue-cli可以帮助我们快速构建Vue项目. 安装命令: npm ...

  7. A+B Problem 详细解答 (转载)

    此为详细装13版 转载自:https://vijos.org/discuss/56ff2e7617f3ca063af6a0a3 全文如下,未作修改,仅供围观,不代表个人观点: 你们怎么都在做网络流,不 ...

  8. Vue filter介绍及详细使用

    Vue filter介绍及其使用 VueJs 提供了强大的过滤器API,能够对数据进行各种过滤处理,返回需要的结果. Vue.js自带了一些默认过滤器例如: capitalize 首字母大写 uppe ...

  9. vue框架搭建的详细步骤之项目结构(二)

    上一篇中简单的创建了一个脚手架,这篇简单的讲一下脚手架的项目结构:     (1).build/ 此目录包含开发服务器和生产webpack构建的实际配置.通常,您不需要触摸这些文件,除非您要自定义We ...

  10. vue框架搭建的详细步骤(一)

    在这里我们先快速的搭建一个vue的脚手架: (1).在安装vue的环境之前,安装NodeJS环境是必须的.可以使用node -v指令检查,需要保证安装了4.0版本以上的nodeJS环境. 没有安装的话 ...

随机推荐

  1. Python使用DB-API操作MySQL数据库

    Python提供了一个标准数据库API,称为DB-API,用于处理基于SQL的数据库.与任何底层数据库的交互都可以使用DB-API,因为DB-API在代码与驱动程序之间提供了一个抽象层,可以根据需要替 ...

  2. Linux(二)-- Linux配置及指令

    一.linux中常用软件的安装 yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix ...

  3. Sublime打开txt文本乱码的解决方法

    Ctrl + Shift + P打开命令行 输入 install  ,先安装 Package Control 安装成功会提示你 现在你可以使用命令面板并键入“install package”开始 然后 ...

  4. LR11录制手机/pad App脚本多种方法介绍(Mobile App补丁包)

    总体来说,通过LR录制手机脚本的方式有三种:1)通过代理方式录制,保证手机电脑在同一个网段:2)通过抓包录制,在手机上安装Mobile Recorder:3)通过安卓模拟器录制,本地安装android ...

  5. 解决汉化pycharme之后设置打不开的问题

    首先进入安装pycharme目录下lib目录下,将汉化包移出去,只留下英文包 然后打开pycharme即可打开设置 在你改完设置之后,可以再将汉化包放进来 英文包:https://pan.baidu. ...

  6. 深浅拷贝及 join set

    1.join s="**".join (['风清扬',"独孤求败"] )       join  把里面的东西拿出来,进行拼接 s="_". ...

  7. 各版本mysql修改root密码

    今天在安装mysql5.7.8的时候遇到一些问题,首当其冲便的是初始root密码的变更,特分享解决方法如下: 1.mysql5.7会生成一个初始化密码,而在之前的版本首次登陆不需要登录. shell& ...

  8. node.js是用来做什么的?这是我看到最好的解释了

    一种JavaScript的运行环境,能够使得JavaScript脱离浏览器运行. 参考链接:https://www.cnblogs.com/suhaihong/p/6598308.html https ...

  9. JAVA 中加载属性文件的4种方法

    小总结 : 这个集合属性可以反序列化, 把持久化数据读出来, 输入流中放入要操作的文件! p.load加载这个输入流! p.getProperty( key) 根据这个键获得值! 补充 : web工程 ...

  10. CodeForces - 545CWoodcutters

    传送门 题目大意:n棵树(10^5),坐标xi,高度hi,把这棵树砍到,可以向右倒[xi,xi+hi]被占, 向左倒[xi-hi,xi]被占,必须要倒的坐标没有被占才能倒,不砍倒就xi被占,问最多砍几 ...