【vue3】05-vue的双向绑定 — v-model

news2024/11/26 2:37:01

文章目录

  • v-mdel
    • v-model的基本使用
    • v-model绑定其他表单元素
      • textarea
      • select
      • checkbox
      • radio
    • v-model修饰符

v-mdel

v-model 是 Vue.js 中用于表单元素和组件双向数据绑定的指令。它可以将表单元素或组件的值和 Vue 实例的数据属性进行双向绑定:

即当表单元素或组件的值发生变化时,Vue 实例的数据属性也会自动更新,反之亦然。

v-model的基本使用

v-model 的基本使用方法是在模板中使用 v-model 指令并将其绑定到一个 Vue 实例的数据属性上。

用法示例:

<template>
  <div>
    <input v-model="message" placeholder="请输入内容">
    <p>您输入的内容是: {{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: ''
    }
  }
}
</script>

需要注意的是,v-model 指令是 Vue.js 提供的语法糖,实际上等价于使用 v-bind 绑定 value 属性和 v-on 绑定 input 或 change 事件。

v-model本质代码示例:

<body>
    <div id="app">

        <!-- 1.这样写等于手动实现双向绑定 -->
       <input type="text" :value="message" @input="inputChange">
       <h2>{{message}}</h2>
    </div>
    <script>

        const app = Vue.createApp({
            data() {
                return {
                    message: 'hello vue',
                }
            },

            methods:{
                // 使用v-model则不用此方法
                inputChange(event){
                    this.message = event.target.value
                }
            }
        })
        app.mount('#app')
    </script>
</body>

v-model绑定其他表单元素

textarea

对于 textarea 元素,使用 v-model 绑定的方式与 input 元素类似,只需将 v-model 绑定到 textarea 元素上即可

代码示例:

<template>
  <div>
    <textarea v-model="message" placeholder="请输入内容"></textarea>
    <p>您输入的内容是: {{ message }}</p>
  </div>
</template>

select

  • 对于 select 元素,v-model 绑定的是 select 元素的 value 属性
  • 使用multiple 属性,它可以使 select 元素支持多选

用法示例:

<body>
    <div id="app">
        <!-- select单选 -->
        <!-- 写到select里v-model -->
        <select v-model="fruit">
            <option value="apple">苹果</option>
            <option value="orange">橘子</option>
            <option value="banana">香蕉</option>
        </select>
        <h2>单选:{{fruit}}</h2>
        <hr>
        <!-- select多选:multiple绑定的是一个数组类型 -->
        <select multiple v-model="fruits">
            <option value="apple">苹果</option>
            <option value="orange">橘子</option>
            <option value="banana">香蕉</option>
        </select>
        <h2>多选:{{fruits}}</h2>
    </div>
    <script>

        const app = Vue.createApp({
            data() {
                return {
                    fruit:"orange",
                    fruits:[]
                }
            }
        })
        app.mount('#app')
    </script>
</body>

效果展示:

在这里插入图片描述

checkbox

(1) checkbox的值:

  • checkbox 元素的 value 属性默认为 “on”
  • 但在实际应用中,我们通常希望 checkbox 元素有一个具体的值。在这种情况下,可以使用 value 属性来设置 checkbox 的值,例如:
<input type="checkbox" v-model="checked" :value="true">

(2) checkbox单选状态:

  • 当 checkbox 被选中时,它的 value 属性被设置为绑定的值。
  • 对于单个 checkbox,可以直接将 v-model 绑定到一个 Boolean 类型的变量上,当 checkbox 被选中时,该变量的值会自动变为 true,反之为 false。

代码示例:

<input type="checkbox" v-model="agree">
export default {
  data() {
    return {
      agree: false
    }
  }
}

(3) checkbox多选状态:

  • 当 checkbox 允许多选时v-model 可以绑定到一个数组上
  • 数组中的每个元素都代表一个被选中的 checkbox 值。
  • 多选框当中,必须明确的绑定一个value
    代码示例:
<input type="checkbox" v-model="checkedNames" value="Jack">
<input type="checkbox" v-model="checkedNames" value="Tom">
<input type="checkbox" v-model="checkedNames" value="Lucy">
export default {
  data() {
    return {
      checkedNames: []
    }
  }
}

radio

  • v-model 绑定的是 radio 元素的 checked 属性,并将该属性绑定到一个数据属性上,该数据属性存储了选中的 radio的值。
  • 通过设置同一个name结果互斥
  • 在vue里v-model绑定同一个值本身就可以互斥

用法示例:

<template>
  <div>
    <label><input type="radio" name="gender" value="male" v-model="selected"></label>
    <label><input type="radio" name="gender" value="female" v-model="selected"></label>
    <p>您选择的性别是: {{ selected }}</p>
  </div>
</template>

v-model修饰符

除了基本的用法,v-model 还支持一些修饰符,可以对值进行处理或对事件进行控制机制。下面是几个常用的 v-model 修饰符

  • .number:用于将用户输入的字符串转换成数字类型,以便进行数学计算。例如:
  • .trim:用于去掉用户输入文本的首位空格
  • .lazy:指定只有在失去焦点或按下回车键时才更新绑定的属性值,而不是在每次输入时都去更新。

用法示例:

        <!-- 1.lazy:绑定change事件:敲回车才同步 -->
      <input type="text" v-model.lazy="message">
      <h2>message:{{message}}</h2>
        <hr>
      <!-- 2.number修饰符:自动将内容转换成数字 -->
      <input type="text" v-model.number="counter">
      <h2>counter:{{counter}}-{{typeof counter}}</h2>
        <!-- type类型为number时,只能输入数字 -->
      <input type="number" v-model="counter">
      <h2>counter:{{counter2}}-{{typeof counter2}}</h2>
      <hr>

      <!-- 3.trim修饰符去除首尾的空格 -->
      <input type="text" v-model.trim="content">
      <h2>content:{{content}}</h2>

      <!-- 4.使用多个修饰符:继续.就行 -->
      <input type="text" v-model.lazy.trim="message" />

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/460909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ajax 实例

文章目录 AJAX 实例AJAX 实例解析 AJAX 实例 为了帮助您理解 AJAX 的工作原理&#xff0c;我们创建了一个小型的 AJAX 应用程序: 实例 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <script> function loadXMLDoc() {var x…

第五期(2022-2023)传统行业云原生技术落地调研报告——金融篇

随着数字化浪潮的来临&#xff0c;云原生技术正在改变着各行各业&#xff0c;通过IT变革驱动业务创新发展&#xff0c;促进企业自身以及产业生态的转型升级。 因此&#xff0c;灵雀云联合云原生技术实践联盟&#xff08;CNBPA&#xff09;和行业内头部厂商F5&#xff0c;共同发…

如何实现一款接入chatGPT的智能音箱

现有的一些“智能音箱”如某度和某猫精灵&#xff0c;跟现在的chatGPT比显得智障。如果能有一款接入chatGPT的智能音箱&#xff0c;它的交互性就好多啦。有gpt加持的智能音箱绝对会很强&#xff0c;以下提供探讨下实现思路。 目前智能音箱在语音交互层面依然不够成熟&#xff0…

PSO算法、MATLAB代码实现以及测试效果

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 PSO算法原理进化操作算法流程图matlab代码实现main函数部分适应度函数部分PSO算法主体测试结果 (F1~F6) PSO算法原理 粒子群优化( Particle Swarm Optimization&am…

【C++关联容器】map的成员函数

目录 map 1. 构造、析构和赋值运算符重载 1.1 构造函数 1.2 析构函数 1.3 赋值运算符重载 2. 迭代器 3. 容量 4. 元素访问 5. 修改器 6. 观察者 7. 操作 8. 分配器 map map是关联容器&#xff0c;它按照特定的顺序存储由关键字值和映射值的组合形成的元素。 在一…

【Java】再看排序 —— 关于 Comparator 的用法

谈一个比较基础&#xff0c;又很常用的东西&#xff0c; Comparator 类&#xff0c;之前我写过一篇浅浅的关于这个的文章 &#xff0c;今天再复盘一下这个问题&#xff0c;把它弄熟 ps: 本文中提供的代码&#xff0c;为了提高可读性都没用 lamdam 和 函数式编程 简化书写&…

JVM-0423

运行时内存 程序计数器 作用:记录每个线程的代码执行到哪一条指令了 为了保证程序(在操作系统中理解为进程)能够连续地执行下去&#xff0c;CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用&#xff0c;所以通常又称为指令计数器。在程序开始执行…

论文阅读:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

使用移位窗口的分层视觉Transformer 继续阅读Transformer相关 0、摘要 本文提出了一种新的视觉Transformer&#xff0c;称为Swin Transformer&#xff0c;能够作为一个通用的骨干计算机视觉。将Transformer从语言适应到视觉的挑战来自于两个领域之间的差异&#xff0c;例如视…

QGIS数据可视化学习笔记01——一般的图层样式调整和在地图上添加图表

说明&#xff1a;QGIS数据可视化章节用的数据为QGIS绘制一张地图学习章节的数据&#xff0c;传送门&#xff1a;https://blog.csdn.net/qq_47188967/article/details/130196284 一、 一般的图层样式调整 首先呢&#xff0c;在QGIS中打开上一章节用的数据&#xff0c;界面如下&…

SpringMVC-HttpMessageConverter的使用

目录 1、HttpMessageConverter概述 2、RequestBody 3、RequestEntity 4、ResponseBody 5、SpringMVC处理json 6、SpringMVC处理ajax 7、RestController注解 8、ResponseEntity 1、HttpMessageConverter概述 HttpMessageConverter是什么 HttpMessageConverter&#xff0…

rabbitmq的高级特性

1.消息可靠性问题&#xff08;实现消费者确认&#xff09; 1.在项目中添加配置 logging:pattern:dateformat: HH:mm:ss:SSSlevel:cn.itcast: debug spring:rabbitmq:host: 192.168.2.182 # rabbitMQ的ip地址port: 5672 # 端口username: rootpassword: rootvirtual-host: /publ…

1.Qt Creator简介及Hello World

安装 下载链接 Qt 5.14.2下载 SDK建议的安装路径 SDK的案例中&#xff0c;宏定义默认要求直接安装在C盘 查看建议路径的流程 右键“解决方案”下的项目名称&#xff0c;选择最下面的“属性” “C/C” -> “常规” -> “附加包含目录” -> “右侧小箭头” ->…

【软件测试】3年测试岗碌碌无为?我到底该咋办?测试提升成长之路...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 无论哪个岗位&…

线程同步方式之三信号量

Linux线程同步方法之三 信号量 信号量本质上是一个计数器&#xff0c;用来表示公共资源中资源的数量。只要拥有信号量&#xff0c;未来一定能够拥有临界资源的一部分使用权。故申请信号量的本质就是对临界资源中特定的小块资源的预订机制。故能通过访问信号量就能提前知道临界…

Redis可视化工具-Another Redis Desktop Manager 安装与连接哨兵集群

目录 一、下载安装 1.1 下载 1.2 安装 二、使用 2.1 新建连接 2.2 新增数据 2.3 应用设置 2.3.1深色模式、语言 2.3.2多个连接的颜色标记 一、下载安装 Another Redis DeskTop Manager 是 Redis 可视化管理工具&#xff0c;体积小&#xff0c;完全免费。最重要的是稳定…

智慧物联网边缘协同感知(EICS)技术方案: 低功耗无线扫描唤醒技术

物联网的传感器或控制节点通常有体积限制&#xff0c;只能使用钮扣电池、小型电池&#xff0c;甚至使用能量收集源进行运作。在许多工业应用中&#xff0c;需要人工更换电池的成本&#xff0c;特别是在难以接近地方更换所需的成本&#xff0c;使得人们更加重视降低平均电流消耗…

缓存一致问题、幂等、jvm调优

缓存笔记 来自 程序员囧辉 黑马博学谷 幂等问题 1 缓存一致问题 1.1.同步删除 核心流程&#xff1a; 更新数据库数据删除缓存数据 问题&#xff1a; . 并发场景下存在脏数据 (并发有脏数据问题). 难以收拢所有更新数据库入口 (可能通过命令行、工具等删除db&#xff0c;…

[Golang] 设计模式以及单例设计模式实例实现

&#x1f61a;一个不甘平凡的普通人&#xff0c;致力于为Golang社区和算法学习做出贡献&#xff0c;期待您的关注和认可&#xff0c;陪您一起学习打卡&#xff01;&#xff01;&#xff01;&#x1f618;&#x1f618;&#x1f618; &#x1f917;专栏&#xff1a;算法学习 &am…

Django框架之视图的基本使用

Django框架之视图的基本使用 概述 在django中&#xff0c;视图方法简称视图&#xff0c;对web请求进行回应。 视图就是一个python函数&#xff0c;在views.py文件中定义。 定义视图 在project/myapp/views.py文件中定义 引入http from django.http import HttpResponse 视…

【C语言】实战练习

目录 1.计算体积&#xff1a; 2、根据父母身高计算孩子的理论身高&#xff1a; 3、三十六计的几计&#xff1a; 4、文本输出&#xff1a; 5、粮仓计数&#xff1a;​编辑 6、auto 7、static: 8、模拟用户注册系统&#xff1a; 1.计算体积&#xff1a; #include <std…