Vue 3 30天精进之旅:Day 06 - 表单输入绑定
引言
在前几天的学习中,我们探讨了事件处理的基本概念及其在Vue中的应用。今天,我们将进一步了解Vue的表单输入绑定。这是构建用户交互式应用的核心部分,使得我们能够方便地处理用户输入并实时更新数据。本文将介绍如何在Vue中实现单向和双向数据绑定、表单控件的处理以及高级用法。
1. Vue中的数据绑定
Vue.js 提供了简单而灵活的数据绑定机制,使得将DOM元素与Vue实例的数据保持同步变得容易。我们可以通过v-model指令来实现双向数据绑定。
1.1 单向绑定与双向绑定
- 单向绑定:数据从Vue实例流向视图。视图的变化不会影响数据。
- 双向绑定:数据和视图相互绑定,数据的变化会反映到视图中,视图的变化也会更新数据。
2. 使用v-model实现双向绑定
v-model是Vue中用于表单输入元素的双向绑定指令。它使得表单输入与Vue实例的数据保持同步。
2.1 基本用法
以下是一个使用v-model的基本示例:
<template><div><label for="username">用户名:</label><input type="text" id="username" v-model="username" /><p>当前用户名: {{ username }}</p></div>
</template><script>
export default {data() {return {username: '',};},
};
</script>
在这个示例中,v-model绑定了username数据属性。用户在输入框中输入的内容会自动更新username的值,同时username的变化也会反映在界面上。
3. 处理不同类型的输入
Vue支持多种表单输入类型,包括文本框、单选框、复选框和下拉列表。下面是如何处理这些不同类型的输入。
3.1 文本框
文本框是最常用的输入控件,使用v-model进行双向绑定非常简单,如上例所示。
3.2 单选框
对于单选框,可以使用v-model来控制一个数据属性。以下是一个单选框的示例:
<template><div><label>性别:</label><label><input type="radio" value="男" v-model="gender" /> 男</label><label><input type="radio" value="女" v-model="gender" /> 女</label><p>选择的性别: {{ gender }}</p></div>
</template><script>
export default {data() {return {gender: '男', // 默认选择男};},
};
</script>
在这个示例中,单选框的值绑定到gender数据属性。用户选择的性别会自动更新,而gender的变化也会反映在界面上。
3.3 复选框
复选框的处理稍有不同,因为它允许多选。可以将复选框的值绑定到一个数组中:
<template><div><label>爱好:</label><label><input type="checkbox" value="足球" v-model="hobbies" /> 足球</label><label><input type="checkbox" value="篮球" v-model="hobbies" /> 篮球</label><label><input type="checkbox" value="游泳" v-model="hobbies" /> 游泳</label><p>选择的爱好: {{ hobbies }}</p></div>
</template><script>
export default {data() {return {hobbies: [], // 存储用户选择的爱好};},
};
</script>
在这个示例中,用户选择的复选框值会被存储在hobbies数组中。
3.4 下拉列表
下拉列表也可以使用v-model来实现双向绑定。以下是一个下拉列表的示例:
<template><div><label for="city">城市:</label><select id="city" v-model="selectedCity"><option value="北京">北京</option><option value="上海">上海</option><option value="广州">广州</option></select><p>选择的城市: {{ selectedCity }}</p></div>
</template><script>
export default {data() {return {selectedCity: '北京', // 默认选择北京};},
};
</script>
4. 处理表单提交
在Vue中,处理表单提交通常涉及到一个提交事件。你可以使用@submit.prevent来阻止默认的表单提交行为,然后在处理函数中执行自定义逻辑。
4.1 表单提交示例
以下是一个简单的表单提交示例:
<template><form @submit.prevent="handleSubmit"><label for="username">用户名:</label><input type="text" id="username" v-model="username" /><button type="submit">提交</button></form>
</template><script>
export default {data() {return {username: '',};},methods: {handleSubmit() {alert(`提交的用户名是: ${this.username}`);// 这里可以添加进一步的逻辑,例如向服务器发送请求},},
};
</script>
在这个示例中,当用户提交表单时,会弹出一个提示框显示提交的用户名,而不会刷新页面。
5. 实践:构建一个用户注册表单
为了巩固今天的学习,我们将构建一个简单的用户注册表单,用户可以输入用户名、选择性别、爱好,并提交表单。
<template><div><h1>用户注册</h1><form @submit.prevent="handleSubmit"><label for="username">用户名:</label><input type="text" id="username" v-model="username" required /><label>性别:</label><label><input type="radio" value="男" v-model="gender" /> 男</label><label><input type="radio" value="女" v-model="gender" /> 女</label><label>爱好:</label><label><input type="checkbox" value="足球" v-model="hobbies" /> 足球</label><label><input type="checkbox" value="篮球" v-model="hobbies" /> 篮球</label><label><input type="checkbox" value="游泳" v-model="hobbies" /> 游泳</label><button type="submit">注册</button></form><h2>用户信息:</h2><p>用户名: {{ username }}</p><p>性别: {{ gender }}</p><p>爱好: {{ hobbies.join(', ') }}</p></div>
</template><script>
export default {data() {return {username: '',gender: '',hobbies: [],};},methods: {handleSubmit() {alert(`注册成功!用户名: ${this.username}, 性别: ${this.gender}, 爱好: ${this.hobbies.join(', ')}`);// 这里可以添加进一步的逻辑,例如向服务器发送请求},},
};
</script><style>
h1 {color: #42b983;
}
label {display: block;margin-top: 10px;
}
</style>
结论
今天,我们深入学习了Vue中的表单输入绑定,包括如何使用v-model实现双向绑定、处理不同类型的输入控件以及表单提交的处理。通过构建用户注册表单,我们巩固了对表单处理的理解,并为后续更复杂的应用打下了基础。
相关文章:
Vue 3 30天精进之旅:Day 06 - 表单输入绑定
引言 在前几天的学习中,我们探讨了事件处理的基本概念及其在Vue中的应用。今天,我们将进一步了解Vue的表单输入绑定。这是构建用户交互式应用的核心部分,使得我们能够方便地处理用户输入并实时更新数据。本文将介绍如何在Vue中实现单向和双向…...
[创业之路-269]:《创业讨论会》- 系统之韵:从麻雀到5G系统的共通性探索
关键词: 从系统的角度,麻雀、人体系统、企业系统、软硬件系统、软件系统、通信系统、5G系统是类似的: 都有:内在看不见的规律、外在显性各种现象 都是:输入、处理、输出 都是:静态、要素、组成、结构、组织…...
使用C#对指定的MYSQL数据库进行备份以及常见问题
最近在开发过程中,需要做个MYSQL数据库的备份,大致总结了一下代码,以及常见的坑 string bakName "database" DateTime.Now.ToString("yyyyMMddHHmmss") ".sql";//备份后的数据库文件名var bakupFilePath &q…...
探索人工智能在计算机视觉领域的创新应用与挑战
一、引言 1.1 研究背景与意义 在科技飞速发展的当下,人工智能(Artificial Intelligence, AI)已然成为引领新一轮科技革命和产业变革的重要驱动力。作为 AI 领域的关键分支,计算机视觉(Computer Vision, CV࿰…...
Charles 4.6.7 浏览器网络调试指南:HTTPS抓包(三)
概述 在现代互联网应用中,网络请求和响应是服务交互的核心。对于开发者和测试人员来说,能够准确捕获并分析这些请求,是保证系统稳定性和性能的关键。Charles作为一个强大的网络调试工具,不仅可以捕获普通的HTTP请求,还…...
STM32 对射式红外传感器配置
这次用的是STM32F103的开发板(这里面的exti.c文件没有how to use this driver 配置说明) 对射式红外传感器 由一个红外发光二极管和NPN光电三极管组成,M3固定安装孔,有输出状态指示灯,输出高电平灯灭,输出…...
12 款开源OCR发 PDF 识别框架
2024 年 12 款开源文档解析框架的选型对比评测:PDF解析、OCR识别功能解读、应用场景分析及优缺点比较 这是该系列的第二篇文章,聚焦于智能文档处理(特别是 PDF 解析)。无论是在模型预训练的数据收集阶段,还是基于 RAG…...
危机13小时:追踪一场GitHub投毒事件
事件概要 自北京时间 2024.12.4 晚间6点起, GitHub 上不断出现“幽灵仓库”,仓库中没有任何代码,只有诱导性的病毒文件。当天,他们成为了 GitHub 上 star 增速最快的仓库。超过 180 个虚假僵尸账户正在传播病毒,等待不…...
CVE-2020-0796永恒之蓝2.0(漏洞复现)
目录 前言 产生原因 影响范围 漏洞复现 复现环境 复现步骤 防御措施 总结 前言 在网络安全的战场上,漏洞一直是攻防双方关注的焦点。CVE-2020-0796,这个被称为 “永恒之蓝 2.0” 的漏洞,一度引起了广泛的关注与担忧。它究竟是怎样的…...
游戏策划的分类
P3游戏策划分类 1.程序2.美术3.策划 程序:一般分为客户端程序和服务器程序 客户端程序一般负责游戏的前端画面表现 服务器程序负责游戏的后端运算 美术:角色原画,角色模型动作,场景原画,场景模型,UI设计&a…...
单片机基础模块学习——PCF8591芯片
一、A/D、D/A模块 A——Analog 模拟信号:连续变化的信号(很多传感器原始输出的信号都为此类信号)D——Digital 数字信号:只有高电平和低电平两种变化(单片机芯片、微控制芯片所能处理的都是数字信号) 下面…...
深入探索 HTML5 拖拽效果 API:打造流畅交互体验
在现代的 Web 开发中,交互性和用户体验一直是开发者关注的重点。HTML5 的拖拽效果 API (Drag and Drop API) 提供了一种非常直观的方式来让网页元素或文件能够被拖动并放置到页面的指定位置,极大提升了用户的交互体验。本篇文章将深入探讨如何使用 HTML5…...
【Healpix】python一种用于将球面划分为均匀区域的技术
Healpix 1、简介2、Healpix的基本原理3、Healpix的优点4、安装及使用4.1 安装healpy4.2 创建Healpix地图4.3 读取和写入Healpix数据4.4 数据插值 5、案例5.1 案例一:宇宙微波背景辐射(CMB)分析5.2 案例二:星系分布分析5.3 案例三&…...
Go:基于Go实现一个压测工具
文章目录 写在前面整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理 客户端模块Http客户端处理Grpc客户端处理Websocket客户端处理 连接处理模块GrpcHttp 统计数据模块统计原理实现过程 写在前面 本篇主要是基于Go来实现一个压测的工具,关于压测的内…...
算法-加油站问题
hello 大家好!今天开写一个新章节,每一天一道算法题。让我们一起来学习算法思维吧! function canCompleteCircuit(gas, cost) {// 加油站的总数const n gas.length;// 记录总剩余油量,若总剩余油量小于 0,说明无法绕环…...
UART ,IIC 和SPI三种总线协议
1.UART 1.1 简介 UART(Universal Asynchronous Receiver/Transmitter)即通用异步收发器。 常见的串行、异步通信总线,两条数据线Tx、Rx,实现全双工通信,常用于主机与外设的通信,点对点。 1.2 硬件连接 交叉…...
Padas进行MongoDB数据库CRUD
在数据处理的领域,MongoDB作为一款NoSQL数据库,以其灵活的文档存储结构和高扩展性广泛应用于大规模数据处理场景。Pandas作为Python的核心数据处理库,能够高效处理结构化数据。在MongoDB中,数据以JSON格式存储,这与Pandas的DataFrame结构可以很方便地互相转换。通过这篇教…...
动手学图神经网络(6):利用图神经网络进行点云分类
利用图神经网络进行点云分类 引言 在本教程中,大家将学习使用图神经网络(Graph Neural Networks, GNN)进行点云分类的基本工具。给定一组对象或点集的数据集,将这些对象嵌入到一个特征空间中,使得它们在特定任务下能够分类。将原始点云作为神经网络的输入,让网络学习捕…...
C语言从入门到进阶
视频:https://www.bilibili.com/video/BV1Vm4y1r7jY?spm_id_from333.788.player.switch&vd_sourcec988f28ad9af37435316731758625407&p23 //枚举常量 enum Sex{MALE,FEMALE,SECRET };printf("%d\n", MALE);//0 printf("%d\n", FEMALE…...
Python中容器类型的数据(下)
集合 集合 (set) 是一种可迭代的、无序的、不能包含重复元素的容器类型的数据。 Python中的集合是一种重要的数据结构,以下为你详细介绍: 定义与特点 无序性:集合中的元素没有固定顺序, {1, 2, 3} 和 {3, 2, 1} 在Python中是同一…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
