Vue.js 实现用户注册功能

在本篇博客中,我们将通过一个简单的例子来展示如何使用 Vue.js 来实现一个用户注册功能。我们将创建一个包含用户名、邮箱和密码输入的表单,并在用户点击“创建账号”按钮时进行简单的验证。
在这里插入图片描述

完整代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>用户注册</title><script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <style>/* 定义一个居中容器样式 */.container {margin: 0 auto; /* 水平居中 */margin-top: 70px; /* 上边距设置为70px */text-align: center; /* 文本居中对齐 */width: 300px; /* 容器宽度设置为300px */}/* 定义副标题样式 */.subTitle {color: gray; /* 文字颜色为灰色 */font-size: 14px; /* 字体大小为14px */}/* 定义标题样式 */.title {font-size: 45px; /* 字体大小为45px */}/* 定义输入框样式 */.input {width: 90%; /* 输入框宽度为容器宽度的90% */}/* 定义输入框容器样式 */.inputContainer {text-align: left; /* 文本左对齐 */margin-bottom: 20px; /* 下边距设置为20px */}/* 定义子容器样式 */.subContainer {text-align: left; /* 文本左对齐 */}/* 定义字段样式 */.field {font-size: 14px; /* 字体大小为14px */}/* 定义输入框样式 */.input {border-radius: 6px; /* 圆角边框 */height: 25px; /* 高度为25px */margin-top: 10px; /* 上边距为10px */border-color: silver; /* 边框颜色为银色 */border-style: solid; /* 实线边框 */background-color: cornsilk; /* 背景颜色为浅黄色 */}/* 定义提示信息样式 */.tip {margin-top: 5px; /* 上边距为5px */font-size: 12px; /* 字体大小为12px */color: gray; /* 文字颜色为灰色 */}/* 定义设置信息样式 */.setting {font-size: 9px; /* 字体大小为9px */color: black; /* 文字颜色为黑色 */}/* 定义标签样式 */.label {font-size: 12px; /* 字体大小为12px */margin-left: 5px; /* 左边距为5px */height: 20px; /* 高度为20px */vertical-align: middle; /* 垂直居中对齐 */}/* 定义复选框样式 */.checkbox {height: 20px; /* 高度为20px */vertical-align: middle; /* 垂直居中对齐 */}/* 定义按钮样式 */.btn {border-radius: 10px; /* 圆角边框 */height: 40px; /* 高度为40px */width: 300px; /* 宽度为300px */margin-top: 30px; /* 上边距为30px */background-color: deepskyblue; /* 背景颜色为深天蓝色 */border-color: blue; /* 边框颜色为蓝色 */color: white; /* 文字颜色为白色 */}</style>
</head>
<body>
<div class="container" id="Application"><div class="subTitle">加入我们</div><h1 class="title">创建你的账号</h1><div v-for="(item,index) in fields" class="inputContainer"><div class="field">{{item.title}}<span v-if="item.required" style="color: red">*</span></div><input class="input" v-model="item.model" :type="item.type"/><div class="tip" v-if="index==2">请输入大于六位的密码</div></div><div class="subContainer"><div class="setting">偏好设置</div><input class="checkbox" type="checkbox"/><label class="label">接受更新邮件</label><button class="btn" @click="createAccount">创建账号</button></div>
</div>
<script>// 定义一个名为 App 的 Vue 组件var App = {// 定义组件的数据data() {return {// 定义一个 fields 数组,包含表单字段的信息fields: [{// 字段的标题title: "用户名",// 是否必填required: true,// 字段的类型type: "text",// 字段的值model: ""},{title: "邮箱地址",required: false,type: "text",model: ""},{title: "密码",required: true,type: "password",model: ""}]}},// 定义计算属性computed: {// 用户名的计算属性name: {// 获取用户名的值get() {return this.fields[0].model},// 设置用户名的值set(value) {this.fields[0].model = value}},// 邮箱地址的计算属性email: {get() {return this.fields[1].model},set(value) {this.fields[1].model = value}},// 密码的计算属性password: {get() {return this.fields[2].model},set(value) {this.fields[2].model = value}}},// 定义组件的方法methods: {// 创建账号的方法createAccount() {// 如果用户名长度为 0,弹出提示信息if (this.name.length == 0) {alert("请输入用户名")return// 如果邮箱地址长度不为 0,且不包含 @ 符号,弹出提示信息} else if (this.email.length != 0 && !this.email.includes("@")) {alert("请输入正确的邮箱地址")return// 如果密码长度小于 6,弹出提示信息} else if (this.password.length < 6) {alert("请输入大于六位的密码")return// 如果所有条件都满足,弹出注册成功的提示信息} else {alert("注册成功")// 在控制台输出注册信息console.log("name:" + this.name + ",email:" + this.email + ",password:" + this.password)// 重置用户名、邮箱地址和密码this.name = ""this.email = ""this.password = ""}}}}// 创建一个 Vue 应用实例,并挂载到 id 为 Application 的元素上Vue.createApp(App).mount("#Application")
</script>
</body>
</html>

代码解释

  1. HTML 结构:我们创建了一个包含用户名、邮箱和密码输入的表单,并添加了一个复选框用于用户选择是否接受更新邮件。

  2. CSS 样式:定义了表单的样式,包括容器、标题、输入框、提示信息和按钮等。

  3. Vue 组件

    • data:定义了表单字段的数据结构,包括字段的标题、是否必填、类型和模型。
    • computed:定义了计算属性,用于获取和设置表单字段的值。
    • methods:定义了创建账号的方法,包括输入验证和注册成功的提示。
  4. 事件处理:在“创建账号”按钮上绑定了 @click 事件,当用户点击按钮时,会调用 createAccount 方法进行注册。

通过这个简单的例子,你可以了解到如何使用 Vue.js 来实现一个基本的用户注册功能。你可以根据需要扩展和优化这个功能,例如添加更多的验证规则、与后端服务器进行通信等。

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

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

相关文章

【Java 学习】面向程序的三大特性:封装、继承、多态

引言 1. 封装1.1 什么是封装呢&#xff1f;1.2 访问限定符1.3 使用封装 2. 继承2.1 为什么要有继承&#xff1f;2.2 继承的概念2.3 继承的语法2.4 访问父类成员2.4.1 子类中访问父类成员的变量2.4.2 访问父类的成员方法 2.5 super关键字2.6 子类的构造方法 3. 多态3.1 多态的概…

impala入门与实践

1.impala基本介绍 impala是cloudera提供的一款高效率的sql查询工具&#xff0c;提供实时的查询效果&#xff0c;官方测试性能比hive快10到100倍&#xff0c;其sql查询比sparkSQL还要更加快速&#xff0c;号称是当前大数据领域最快的查询sql工具。impala是参照谷歌的新三篇论文…

结构方程模型(SEM)入门到精通:lavaan VS piecewiseSEM、全局估计/局域估计;潜变量分析、复合变量分析、贝叶斯SEM在生态学领域应用

目录 第一章 夯实基础 R/Rstudio简介及入门 第二章 结构方程模型&#xff08;SEM&#xff09;介绍 第三章 R语言SEM分析入门&#xff1a;lavaan VS piecewiseSEM 第四章 SEM全局估计&#xff08;lavaan&#xff09;在生态学领域高阶应用 第五章 SEM潜变量分析在生态学领域…

小米PC电脑手机互联互通,小米妙享,小米电脑管家,老款小米笔记本怎么使用,其他品牌笔记本怎么使用,一分钟教会你

说在前面 之前我们体验过妙享中心&#xff0c;里面就有互联互通的全部能力&#xff0c;现在有了小米电脑管家&#xff0c;老款的笔记本竟然用不了&#xff0c;也可以理解&#xff0c;毕竟老款笔记本做系统研发的时候没有预留适配的文件补丁&#xff0c;至于其他品牌的winPC小米…

python爬虫案例——猫眼电影数据抓取之字体解密,多套字体文件解密方法(20)

文章目录 1、任务目标2、网站分析3、代码编写1、任务目标 目标网站:猫眼电影(https://www.maoyan.com/films?showType=2) 要求:抓取该网站下,所有即将上映电影的预约人数,保证能够获取到实时更新的内容;如下: 2、网站分析 进入目标网站,打开开发者模式,经过分析,我…

一分钟食用前端测试框架Jest

安装 其实食用Jest是很简单的,我们只需要安装Jest即可 npm install --save-dev jestyarn add --dev jestpnpm add --save-dev jest ESmodule 本身来说,Jest是不支持Esmodule的,他支持CommonJS,我们需要Babel改一下 npm i --save-dev babel-jest babel/core babel/preset-env …

从 App Search 到 Elasticsearch — 挖掘搜索的未来

作者&#xff1a;来自 Elastic Nick Chow App Search 将在 9.0 版本中停用&#xff0c;但 Elasticsearch 拥有你构建强大的 AI 搜索体验所需的一切。以下是你需要了解的内容。 生成式人工智能的最新进展正在改变用户行为&#xff0c;激励开发人员创造更具活力、更直观、更引人入…

若依框架部署在网站一个子目录下(/admin)问题(

部署在子目录下首先修改vue.config.js文件&#xff1a; 问题一&#xff1a;登陆之后跳转到了404页面问题&#xff0c;解决办法如下&#xff1a; src/router/index.js 把404页面直接变成了首页&#xff08;大佬有啥优雅的解决办法求告知&#xff09; 问题二&#xff1a;退出登录…

【贪心算法第六弹——334.递增的三元子序列(easy)】

目录 1.题目解析 题目来源 测试用例 2.算法原理 3.实战代码 代码解析 本题属于最长递增子序列的简化版本&#xff0c;只需要判断能不能组成三位的递增子序列即可&#xff0c;建议先去看博主的另一篇博客可以更好的理解本篇博客&#xff1a;300.最长递增子序列 1.题目解析…

《TCP/IP网络编程》学习笔记 | Chapter 16:关于 I/O 流分离的其他内容

《TCP/IP网络编程》学习笔记 | Chapter 16&#xff1a;关于 I/O 流分离的其他内容 《TCP/IP网络编程》学习笔记 | Chapter 16&#xff1a;关于 I/O 流分离的其他内容分离 I/O 流2 次 I/O 流分离分离「流」的好处「流」分离带来的 EOF 问题 文件描述符的的复制和半关闭终止「流」…

LeetCode数组题

参考链接 代码随想录 讲解视频链接 数组题 1、(两数之和)给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用…

Unity-Lightmap入门篇

&#xff1a;&#xff1a;这是一个实战文章&#xff0c;并没有知识分享&#xff0c;或理论知识&#xff1b;完全没有 关键字&#xff1a; “lightmap","全局光照”&#xff0c;“light Probe" (会混合一些中英文搜索&#xff0c;或者全英文搜索&#xff09; …

海康VsionMaster学习笔记(学习工具+思路)

一、前言 VisionMaster算法平台集成机器视觉多种算法组件&#xff0c;适用多种应用场景&#xff0c;可快速组合算法&#xff0c;实现对工件或被测物的查找测量与缺陷检测等。VM算法平台依托海康威视在图像领域多年的技术积淀&#xff0c;自带强大的视觉分析工具库&#xff0c;可…

Python双向链表、循环链表、栈

一、双向链表 1.作用 双向链表也叫双面链表。 对于单向链表而言。只能通过头节点或者第一个节点出发&#xff0c;单向的访问后继节点&#xff0c;每个节点只能记录其后继节点的信息&#xff08;位置&#xff09;&#xff0c;不能向前遍历。 所以引入双向链表&#xff0c;双…

【数据结构笔记】习题

渐进分析 【2010-THU-Mid】f(n) O(g(n))&#xff0c;当且仅当g(n) Ω(f(n))。&#xff08;√&#xff09; 【2010-THU-Mid】若f(n) O(n^2)且g(n) O(n)&#xff0c;则以下结论正确的是&#xff08;AD&#xff09; A. f(n) g(n) O(n^2) B. f(n) / g(n) O(n) C. g(n) O(f(…

ES实用面试题

一、es是什么&#xff0c;为什么要用它&#xff1f; ES通常是Elasticsearch的简称&#xff0c;它是一个基于Lucene构建的开源搜索引擎。Elasticsearch以其分布式、高扩展性和实时数据分析能力而闻名&#xff0c;广泛用于全文搜索、日志分析、实时监控等多种场景。 基本特点&am…

适用于学校、医院等低压用电场所的智能安全配电装置

引言 电力&#xff0c;作为一种清洁且高效的能源&#xff0c;极大地促进了现代生活的便捷与舒适。然而&#xff0c;与此同时&#xff0c;因使用不当或维护缺失等问题&#xff0c;漏电、触电事件以及电气火灾频发&#xff0c;对人们的生命安全和财产安全构成了严重威胁&#xf…

智能桥梁安全运行监测系统守护桥梁安全卫士

一、方案背景 桥梁作为交通基础设施中不可或缺的重要组成部分&#xff0c;其安全稳定的运行直接关联到广大人民群众的生命财产安全以及整个社会的稳定与和谐。桥梁不仅是连接两地的通道&#xff0c;更是经济发展和社会进步的重要纽带。为了确保桥梁的安全运行&#xff0c;桥梁安…

【Python爬虫五十个小案例】爬取豆瓣电影Top250

博客主页&#xff1a;小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介&#xff1a;分享五十个Python爬虫小案例 &#x1fab2;前言 在这篇博客中&#xff0c;我们将学习如何使用Python爬取豆瓣电影Top250的数据。我们将使用requests库来发送HTTP请求&#xff0c;…

Java基础 设计模式——针对实习面试

目录 Java基础 设计模式单例模式工厂模式观察者模式策略模式装饰器模式其他设计模式 Java基础 设计模式 单例模式 单例模式&#xff08;Singleton Pattern&#xff09; 定义&#xff1a;确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个实例。适用场景&…