当前位置:网站首页>v-model
v-model
2022-08-04 01:40:00 【探索前端究极秘法的小牛】
1,v-model的基本使用
<input type="text" v-model="msg">
<h2>{
{msg}}</h2>
v-model 双向绑定 只要input框的值发生改变,则h2中的ms的值也会同时发生改变
<!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>
<script src="./vue.js"></script>
</head>
<body>
<div id="app">
<!-- v-model 的基本使用 -->
<input type="text" v-model="msg">
<h2>{
{msg}}</h2>
</div>
<script>
var vm = new Vue({
el:'#app',
data(){
return{
msg:'猜猜我会怎么变化'
}
}
})
</script>
</body>
</html>
效果图
2,v-model的底层原理
首先 来创建有一个小deom, 不用v-model来实现双向绑定
<input type="text" @input="changeValue" :value="msg">
底层的原理就是:用到了oninput方法,用户在输入的时候触发,同时用到v-bind来绑定的
<div id="app">
<!-- v-model 的原理-->
<!-- 1.不适用v-model来实现双向绑定 这里利用了oninput方法 -->
<input type="text" @input="changeValue" :value="msg">
<!-- 底层的原理用到了oninput方法,用户在输入的时候触发,同时用到v-bind来绑定的 -->
<h2>{
{msg}}</h2>
</div>
<script>
var vm = new Vue({
el:'#app',
data(){
return{
msg:'我可是没有用v-model来实现的哦!'
}
},methods:{
changeValue(event){
this.msg=event.target.value
}
}
})
</script>
3,v-model的修饰符的使用
lazy
:默认情况下是实时更新数据加上lazy
,从输入框失去焦点按下enter都会更新数据。number
:默认是string类型,使用number
复制为number类型。trim
:用于自动过滤用户输入的首尾空白字符
<h2>v-model修饰符</h2>
<h3>lazy,默认情况是实时更新数据,加上lazy,从输入框失去焦点,按下enter都会更新数据</h3>
<input type="text" v-model.lazy="message">
<div>{
{message}}</div>
<h3>修饰符number,默认是string类型,使用number赋值为number类型</h3>
<input type="number" v-model.number="age">
<div>{
{age}}--{
{typeof age}}</div>
<h3>修饰符trim:去空格</h3>
<input type="text" v-model.trim="name">
js部分
<script>
const app = new Vue({
el:"#app",
data:{
message:"zzz",
age:18,
name:"ttt"
},
})
</script>
效果图
4, v-model结合select
v-model结合select可以单选也可以多选。
<!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>v-model结合select类型</title>
</head>
<body>
<div id="app">
<!-- select单选 -->
<select name="fruit" v-model="fruit">
<option value="苹果">苹果</option>
<option value="香蕉">香蕉</option>
<option value="西瓜">西瓜</option>
</select>
<h2>你选择的水果是:{
{fruit}}</h2>
<!-- select多选 -->
<select name="fruits" v-model="fruits" multiple>
<option value="苹果">苹果</option>
<option value="香蕉">香蕉</option>
<option value="西瓜">西瓜</option>
</select>
<h2>你选择的水果是:{
{fruits}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el:"#app",
data:{
fruit:"苹果",
fruits:[]
},
})
</script>
</body>
边栏推荐
猜你喜欢
观察者模式
2022年上半年各大厂Android面试题整理及答案解析(持续更新中......)
Flink jdbc connector 源码改造sink之 clickhouse多节点轮询写与性能分析
Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
SAP SD模块前台操作
Snake game bug analysis and function expansion
字符串变形
循环绕过问题
Use of lombok annotation @RequiredArgsConstructor
阿里云技术专家邓青琳:云上跨可用区容灾和异地多活最佳实践
随机推荐
pygame 中的transform模块
字符串变形
工程制图平面投影练习
Continuing to pour money into commodities research and development, the ding-dong buy vegetables in win into the supply chain
简单的线性表的顺序表示实现,以及线性表的链式表示和实现、带头节点的单向链表,C语言简单实现一些基本功能
Promise solves blocking synchronization and turns asynchronous into synchronous
FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
网页三维虚拟展厅为接入元宇宙平台做基础
数组_滑动窗口 | leecode刷题笔记
The idea of the diagram
静态/动态代理模式
esp32发布机器人电池电压到ros2(micro-ros+CoCube)
FeatureNotFound( bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested:
DDTL:远距离的域迁移学习
计算首屏时间
JS 从零教你手写节流throttle
C语言:学生管理系统(链表版)
LeetCode third topic (the Longest Substring Without Repeating Characters) trilogy # 3: two optimization
通用的测试用例编写大全(登录测试/web测试等)
2022 China Computing Power Conference released the excellent results of "Innovation Pioneer"