当前位置: 首页 > news >正文

class 5: vue.js 3 v-model和表单输入

  • v-model是Vue.js 3中用于实现双向绑定的重要指令,双向绑定就是对于数据的修改会映射回UI组件上,同时对于UI组件上数据的变更也会映射回底层数据当中,v-model会根据控件的类型自动选取正确的方法来更新元素
  • v-model底层实现的原理实际上是v-bindv-on的结合,首先使用v-bind为value属性绑定变量;然后使用v-on绑定input事件,并在事件回调中重新为value属性绑定的变量赋值
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div id="app"></div><template id="my-app"><h2>{{ message }}</h2><div class="container"><input type="text" class="input" :value="message" @input="inputChange"><input type="text" class="input" v-model="message"></div></template><script src="./js/vue.js"></script><script>const App = {template: '#my-app',data() {return {message: 'Hello World'}},methods: {inputChange(event) {this.message = event.target.value}}}Vue.createApp(App).mount('#app')</script>
</body>
</html><style>
.container {display: flex;flex-wrap: wrap;width: 100px;
}
.input {width: 100px;margin: 10px;
}
</style>
  • 可以看到,上面的两种input组件都能实现双向绑定的效果

v-model的修饰符

v-model指令支持使用修饰符来完成一些特殊的操作,Vue.js 3常见的v-model修饰符如下

  1. .lazy:将输入内容的更新延迟到change事件触发时再进行,而不是每次输入内容都进行更新
<input type="text" class="input" v-model.lazy="message">
  1. .number:自动将输入内容转换为数字类型,如果不用这个的话,默认输入的都是字符串类型,用这个之后,数字会自动转换为数字类型
<input type="text" class="input" v-model.number="message">
  1. .trim:去除输入内容的首位空格,这个的效果是最中绑定到数据上的时候,会自动去除首位的空格
<input type="text" class="input" v-model.trim="message">

可以用下面的代码整体验证一下

<template id="my-app"><h2>{{ message }} -> {{ typeof message}}</h2><div class="container"><input type="text" class="input" :value="message" @input="inputChange"><input type="text" class="input" v-model="message"><input type="text" class="input" v-model.lazy="message"><input type="text" class="input" v-model.number="message"><input type="text" class="input" v-model.trim="message"></div>
</template>
http://www.lryc.cn/news/431422.html

相关文章:

  • 了解一下HTTP 与 HTTPS 的区别
  • Opencv中的直方图(1)计算反向投影直方图函数calcBackProject()的使用
  • VUE3项目的几种创建方式
  • VBA进行excel坐标转换
  • 使用pytorch深度学习框架搭建神经网络
  • Hive数据库与表操作全指南
  • UniaApp引入Iconfont
  • 面试题:软件测试缺陷产生的原因有哪些?
  • RabbitMQ 04 集群
  • axure9勾选多个删除,弹框显示多个中继器编号
  • Git 使用指南 --- 版本管理
  • C#进阶-ASP.NET实现可以缩放和旋转的图片预览页
  • 【小程序 - 大智慧】深入微信小程序的核心原理
  • Qt 去掉QDialog对话框的问号
  • 负载均衡 Ribbon 与 Fegin 远程调用原理
  • c/c++:CMakeLists.txt中添加编译/连接选项使用内存错误检测工具Address Sanitizer(ASan)
  • armbian cups 远程打印机 1022
  • three.js使用3DTilesRendererJS加载3d tiles数据
  • 坐牢第三十五天(c++)
  • Conda离线部署django
  • 1. Fabric.js安装使用
  • Excel中.xls和.xlsx文件格式的区别,及C++操作Excel文件
  • php实用命令
  • TypeError:未绑定方法
  • Java虚拟机(JVM)的架构和工作原理,字节码执行流程
  • 416.分割等和子集
  • python初始化一个三维数组
  • EI会议推荐-第二届大数据与数据挖掘国际会议(BDDM 2024)
  • RK3566/RK3568 Android 11 动态显示/隐藏下拉框
  • Android图片缓存工具类LruCache原理和使用介绍