微信小程序如何实现登陆和注册功能?

在这里插入图片描述


👨‍💻个人主页:@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏:微信小程序开发

🅰

请添加图片描述


文章目录

    • 🅰
    • 前言
    • 🎶一、实现注册界面
      • (1)logs.wxml
      • (2)logs.wxss
      • (3)logs.js
    • 🎶 二、实现登陆页面
      • (1)user.wxml
      • (2)user.wxss
      • (3)user.js
        • 结束语🥇


前言

  在当今数字化的时代,微信小程序以其便捷、高效和轻量的特点,成为了人们获取服务和信息的重要途径。而登录和注册功能作为小程序与用户建立连接的关键环节,不仅关乎用户体验,更是保障数据安全和个性化服务的基础。
  实现微信小程序的登录和注册功能,旨在为用户提供一种无缝、流畅的交互方式,让他们能够轻松地进入小程序的世界,享受到专属的服务和内容。通过精心设计的登录和注册流程,我们致力于在保障用户隐私的前提下,准确识别用户身份,为其提供个性化的推荐、定制化的设置以及安全可靠的信息存储。
  无论是新用户初次踏入小程序的大门,还是老用户的再次归来,登录和注册功能都将成为他们与小程序之间信任与便捷的桥梁,为用户开启一段精彩的数字化体验之旅。


🎶一、实现注册界面


  在微信小程序的生态中,注册界面是用户与小程序建立深度关联的起点。它如同一张邀请函,诚挚地邀请用户踏入一个充满可能的数字领域。
  精心构建的注册界面,旨在为用户提供流畅、便捷且安全的注册体验。我们深知,每一位用户的时间都无比珍贵,因此致力于以最简捷的流程、最清晰的指引,让用户能够轻松完成注册,开启个性化的小程序之旅。
  注册界面不仅是用户信息的收集入口,更是传递信任与友好的窗口。通过人性化的设计,我们力求消除用户在注册过程中的疑虑和困惑,为他们营造一个安心、舒适的环境,使其愿意将个人信息托付给我们,从而畅享小程序所提供的独特服务和价值。

(1)logs.wxml

<!--logs.wxml-->
<view class="v1" style="height:{{clientHeight?clientHeight+'px':'auto'}}"><!-- v2父容器  子view使用绝对布局 --><view class="v2"><view class="dltext" style="width: 232rpx; height: 92rpx; display: block; box-sizing: border-box; left: 0rpx; top: -2rpx">登录</view><!-- 手机号 --><view class="phoneCs"><!-- <image src="/images/zhang.png" class="ph"></image> --><input id='account' placeholder="请输入账号" type="number" bindinput="accountInput"/></view><!-- 密码 --><view class=passwordCs"><!-- <image src="/images/mi.png" class="ps"></image> --><input id='pwd' placeholder="请输入密码" type="password" bindinput=passwordInput" /></view><!-- 登录按钮 --><view class="denglu" bindtap="login"><button class="btn-dl" type="primary" bindtap="goadmin">登录</button></view></view></view>

(2)logs.wxss


.v1{display: block;position:absolute;width: 100%;background-color: rgb(243, 227, 227);
}
/* 白色区域 */
.v1 .v2{position: relative;margin-top: 150rpx;left: 100rpx; width: 545rpx;height: 600rpx;background-color: rgb(230, 198, 198);border-radius: 50rpx;
}
/* 白色区域内的登录文本 */
.v1 .v2 .dltext{margin-top: 50rpx;position: absolute;margin-left:50rpx;width: 150rpx;height: 100rpx;font-size: 60rpx;font-family: Helvetica;color: #000000;line-height: 100rpx;letter-spacing: 2rpx;
}
/* 手机图片+输入框+下划线的父容器view */
.v1 .v2 .phoneCs{margin-top: 200rpx;margin-left: 25rpx;position: absolute;display: flex;width:480rpx ;height: 90rpx ;background-color: white;}
/* 手机图标 */
.v1 .v2 .phoneCs .ph{margin-top: 5rpx;margin-left: 30rpx;width: 55rpx;height: 55rpx;
}
/* 手机号输入框 */
.v1 .v2 .phoneCs input{width: 400rpx;font-size: 30rpx ;margin-top: 25rpx;margin-left: 30rpx;}
/* 密码图标+输入框+小眼睛图标+下划线父容器view */
.v1 .v2 .passwordCs{margin-top: 350rpx;margin-left: 25rpx;position: absolute;display: flex;width:480rpx ;height: 90rpx ;background-color:white;}
/* 密码图标 */
.v1 .v2 .passwordCs .ps{margin-top: 5rpx;margin-left: 30rpx;width: 55rpx;height: 55rpx;
}
/* 眼睛 图标*/
.v1 .v2 .passwordCs .eye{margin-top: 5rpx;margin-left: 65rpx;width: 55rpx;height: 55rpx;
}
/* 密码输入框 */
.v1 .v2 .passwordCs input{width: 400rpx;font-size: 30rpx ;margin-top: 25rpx;margin-left: 30rpx;
}
/* 登录按钮容器view */
.v1 .v2 .denglu{width: 480rpx;height: 80rpx;position: absolute;margin-top:515rpx;margin-left:25rpx;}
/* 登录按钮 */
.v1 .v2 .denglu button{padding: 0rpx;line-height: 70rpx;font-size: 30rpx;width: 100%;height: 100%;border-radius: 5rpx;
}

(3)logs.js

// pages/login/login.js
Page({/*** 页面的初始数据*/data: {account:'',password:''},accountInput:function (e) {this.data.account = e.detail.value},passwordInput:function (e) {this.data.password = e.detail.value},regist:function (e) {wx.navigateTo({url: '../enroll/enroll',})},goadmin:function (e) {var that = thisif(that.data.account==''){wx.showModal({title:"提示",content:"请输入用户名/邮箱/手机号",showCancel:false,success(res){}})}else if(that.data.password==''){wx.showModal({title:"提示",content:"请输入密码",showCancel:false,success(res){}})}else{if (that.data.account=='123456'&&that.data.password=='123456') {wx.reLaunch({url: '/pages/index/index',})}else{wx.showModal({title:"提示",content:"账号或密码错误,请动动脑袋自行检查",showCancel:false,success(res){}})}}},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {}
})

🦖 运行结果的显示:
在这里插入图片描述


🎶 二、实现登陆页面


  在微信小程序的架构中,登录界面是用户与小程序交互的首要关卡,也是建立信任和个性化服务的起点。它犹如一扇通往精彩数字世界的大门,精心设计的登录界面不仅能为用户带来便捷、高效的登录体验,更是保障用户信息安全和隐私保护的重要防线。
  我们致力于打造一个简洁明了、易于操作的登录界面,让用户在瞬间完成身份验证,无缝融入小程序所提供的丰富功能与服务之中。通过巧妙的布局、清晰的引导和友好的交互设计,无论是新用户的初次邂逅,还是老用户的日常回归,都能感受到我们对用户体验的极致追求。
  这个登录界面不仅仅是一个技术实现,更是我们对用户需求的深度理解和尊重的体现,是开启用户与小程序之间紧密连接和愉快互动的关键钥匙。

(1)user.wxml

<!--pages/users/users.wxml-->
<view class="top-box"><view>Hi</view><view class="next-text">欢迎使用!</view>
</view>
<!-- 登录、注册 -->
<view class="center-box"><view class="nav"><view class="left {{current==1?'select':''}}" bindtap="click" data-code="1"><text>登录</text></view><view class="right {{current==0?'select':''}}" bindtap="click" data-code="0"><text>注册</text></view></view><!-- 登录 --><view class="input-box" hidden="{{current==0}}"><view class="wei-input"><icon type="waiting" color="#44ADFB" size="16"></icon><input class="input" auto-focus placeholder="请输入手机号/登录名"/></view><view class="wei-input"><icon type="success" color="#44ADFB" size="16"></icon><input class="input" auto-focus placeholder="请输入登录密码"/></view><view class="forget"><text>忘记密码</text></view></view><!-- 注册 --><view class="input-box" hidden="{{current==1}}"><view class="wei-input"><icon type="waiting" color="#44ADFB" size="16"></icon><input class="input" auto-focus placeholder="请输入手机号"/></view><view class="wei-input"><icon type="waiting" color="#44ADFB" size="16"></icon><input class="input" auto-focus placeholder="请输入6位验证码"/><text class="input-code" bindtap="getCode">{{codeText}}</text></view><view class="wei-input"><icon type="success" color="#44ADFB" size="16"></icon><input class="input" auto-focus placeholder="请输入密码"/></view><view class="wei-input"><icon type="success" color="#44ADFB" size="16"></icon><input class="input" auto-focus placeholder="请确认密码"/></view></view><view class="sumbit-btn" ><button class="button" style="background-color:#FF0000;font-size: 30rpx;" type="primary">立即{{current==1?'登录':'注册'}}</button></view>
</view>
<!-- 重影 -->
<view class="shadow shadow-1"></view><view class="shadow shadow-2"></view>
<!-- 说明 -->
<view class="bottom-box">
</view>

(2)user.wxss

/* pages/users/users.wxss */
page{height: 100%;background-color: white;margin: 0px;padding: 0px;
}
/* 顶部背景 */
.top-box{height: 30%;background: #FF0000;padding: 30rpx;color: white;font-weight: bold;
}
.next-text{margin-top: 15rpx;
}
/* 内容 */
.center-box{background-color: white;margin: -20% 20rpx 0rpx 20rpx;padding: 25rpx;border-radius: 15rpx;-webkit-filter: drop-shadow(0 0 8rpx #FF0000);filter: drop-shadow(0 0 8rpx #FF0000);
}
/* 导航 */
.nav{display: flex;text-align: center;font-size: 32rpx;margin-bottom: 8%;
}
.left{flex: 1;font-weight: bold;
}
.right{flex: 1;font-weight: bold;
}
.select{font-weight: bold;color: #33ccff;
}
.select text{padding-bottom: 5rpx;border-bottom-left-radius: 10rpx;border-bottom-right-radius: 10rpx;border-bottom: 5rpx solid #33ccff;
}
.wei-input{display: flex;flex-direction: row;align-items: center;margin-top: 40rpx;padding-bottom: 20rpx;border-bottom: 1rpx solid #f1f1f1;
}
.input-box{margin: 20rpx;
}
.input{padding-left: 20rpx;font-size: 30rpx;
}
.input-code{position: absolute;right: 40rpx;font-size: 26rpx;padding: 10rpx 15rpx;color: white;background-color: #FF0000;border-radius: 10rpx;
}
.forget{font-size: 26rpx;color: #FF0000;margin-top: 20rpx;text-align: right;
}
.sumbit-btn{margin: 6% 30rpx 30rpx 30rpx;
}
/* 重影 */
.shadow{box-shadow: 0rpx 0rpx 10rpx 0rpx #FF0000;border-radius: 25rpx;background-color: white;
}
.shadow-1{height: 40rpx;margin: -20rpx 50rpx 0 50rpx;
}
.shadow-2{position: relative;z-index: -888;height: 50rpx;margin: -30rpx 80rpx 0 80rpx;
}
/* 最底部 */
.bottom-box{position:fixed; bottom: 10rpx;width:100%;font-size: 24rpx;color: gray;display: flex;justify-content: center;
}

(3)user.js

// pages/users/users.js
Page({/*** 页面的初始数据*/data: {current:1,codeText:'获取验证码',counting:false,},// 登陆注册监听click(e){let index = e.currentTarget.dataset.code;this.setData({current:index})},//获取验证码 getCode(){var that = this;if (!that.data.counting) {wx.showToast({title: '验证码已发送',})//开始倒计时60秒that.countDown(that, 60);} },//倒计时60秒countDown(that,count){if (count == 0) {that.setData({codeText: '获取验证码',counting:false})return;}that.setData({counting:true,codeText: count + '秒后重新获取',})setTimeout(function(){count--;that.countDown(that, count);}, 1000);},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {},/*** 页面上拉触底事件的处理函数*/onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {}
})

🦖运行结果的显示:
在这里插入图片描述


结束语🥇

以上就是微信小程序之列表渲染
持续更新微信小程序教程,欢迎大家订阅系列专栏🔥微信小程序
你们的支持就是曼亿点创作的动力💖💖💖
请添加图片描述

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

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

相关文章

最新 Kubernetes 集群部署 + Containerd容器运行时 + flannel 网络插件(保姆级教程,最新 K8S 1.28.2 版本)

资源列表 操作系统配置主机名IP所需插件CentOS 7.92C4Gk8s-master192.168.60.143flannel-cni-plugin、flannel、coredns、etcd、kube-apiserver、kube-controller-manager、kube-proxy、 kube-scheduler 、containerd、pause 、crictlCentOS 7.92C4Gk8s-node01192.168.60.144f…

JVM:运行时数据区

文章目录 一、总览二、程序计数器1、介绍2、程序计数器在运行中会出现内存溢出吗&#xff1f; 三、栈1、介绍2、栈帧的组成部分&#xff08;1&#xff09;局部变量表&#xff08;2&#xff09;操作数栈&#xff08;3&#xff09;帧数据&#xff08;3&#xff09;栈内存溢出&…

everything搜索不到任何文件-设置

版本&#xff1a; V1.4.1.1024 (x64) 问题&#xff1a;搜索不到任何文件 click:[工具]->[选项]->下图所示 将本地磁盘都选中包含

mavsdk_server安卓平台编译

1.下载好mavsdk并进入mavsdk目录 2.生成docker安卓平台文件 docker run --rm dockcross/android-arm64 >./dockcross-android-arm64 3.生成makefile ./dockcross-android-arm64 cmake -DCMAKE_BUILD_TYPERelease -DBUILD_MAVSDK_SERVERON -DBUILD_SHARED_LIBSOFF -Bbuild/…

【学习笔记】4、组合逻辑电路(下)

接前文《【学习笔记】4、组合逻辑电路(上)》 4.4.5 算术运算电路 1. 半加器和全加器 半加器和全加器是算术运算电路中的基本单元。半加器和全加器是1位相加的组合逻辑电路。 &#xff08;1&#xff09;半加器 半加器&#xff1a;只考虑两个加数本身&#xff0c;不考虑低位进…

SuiteCRM SQL注入漏洞复现(CVE-2024-36412)

0x01 产品简介 SuiteCRM是一款屡获殊荣的企业级开源客户关系管理系统&#xff0c;它具有强大的功能和高度的可定制性&#xff0c;且完全免费。 0x02 漏洞概述 SuiteCRM存在SQL注入漏洞&#xff0c;未经身份验证的远程攻击者可以通过该漏洞拼接执行SQL注入语句&#xff0c;从…

C++20中的consteval说明符

在C20中&#xff0c;立即函数(immediate function)是指每次调用该函数都会直接或间接产生编译时常量表达式(constant expression)的函数。这些函数在其返回类型前使用consteval关键字进行声明。 立即函数是constexpr函数&#xff0c;具体情况取决于其要求。与constexpr相同&…

光学遥感图像中的目标检测技术全面综述,以及新的大规模基准数据集DIOR介绍。

原版论文&#xff1a;https://arxiv.org/abs/1909.00133 数据获取地址&#xff1a;https://www.dilitanxianjia.com/15648/ 获取全文可以入下图所示进行操作&#xff1a; 这篇文章主要对光学遥感图像中的目标检测技术进行了全面的综述&#xff0c;并提出了一个新的大规模基准…

神经网络以及简单的神经网络模型实现

神经网络基本概念&#xff1a; 神经元&#xff08;Neuron&#xff09;&#xff1a; 神经网络的基本单元&#xff0c;接收输入&#xff0c;应用权重并通过激活函数生成输出。 层&#xff08;Layer&#xff09;&#xff1a; 神经网络由多层神经元组成。常见的层包括输入层、隐藏层…

Camunda如何通过外部任务与其他系统自动交互

文章目录 简介流程图外部系统pom.xmllogback.xml监听类 启动流程实例常见问题Public Key Retrieval is not allowed的解决方法java.lang.reflect.InaccessibleObjectException 流程图xml 简介 前面我们已经介绍了Camunda的基本操作、任务、表&#xff1a; Camunda组件与服务与…

浏览器插件使用方法

如果我们经常使用的浏览器不是edge或者是chrome浏览器时&#xff0c;需要在浏览器安装插件时&#xff0c;无法获取插件以及不知道如何安装插件&#xff0c;本文章教你如何获取以及安装使用。 获取方法 第一种方法&#xff08;推荐&#xff09; 无需“魔法”&#xff0c;即可访问…

多表联合的查询(实例)、对于前端返回数据有很多表,可以分开操作、debug调试教程

2024.7.13 一、 对于多表的更深层的认识1. 认识2. 多表联合查询的列子&#xff1a;3. 对于多表查询的进一步认识4. 在实现功能的时候&#xff0c;原本对于省市县这样的表&#xff0c;对于项目的要求&#xff0c;是直接全部查询出来&#xff0c;然后开始使用&#xff0c;但我想着…

PDF 中图表的解析探究

PDF 中图表的解析探究 0. 引言1. 开源方案探究 0. 引言 一直以来&#xff0c;对文档中的图片和表格处理都非常有挑战性。这篇文章记录一下最近工作上在这块的探究。图表分为图片和表格&#xff0c;这篇文章主要记录了对表格的探究。还有&#xff0c;我个人主要做日本项目&…

如何解决VMware 安装Windows10系统出现Time out EFI Network...

一、问题描述 使用VMware 17 安装windows10出现如下图所示Time out EFI Network… Windows10镜像为微软官方下载的ISO格式镜像&#xff1b; 二、问题分析 VMware 17 默认的固件类型是UEFI(E)&#xff0c;而微软官网下载的Windows10 ISO格式镜像不支持UEFI(E)&#xff0c;支…

Android APT实战

Android开发中,注解平时我们用的比较多,也许我们会比较好奇,注解的背后是如何工作的,这篇文章帮大家一步步创建一个简单的注解处理器。 简介 APT(Annotation Processing Tool)即注解处理器,在编译的时候可以处理注解然后搞一些事情,也可以在编译时生成一些文件之类的。…

网络安全——防御课实验二

在实验一的基础上&#xff0c;完成7-11题 拓扑图 7、办公区设备可以通过电信链路和移动链路上网(多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换) 首先&#xff0c;按照之前的操作&#xff0c;创建新的安全区&#xff08;电信和移动&#xff09;分别表示两个外网…

nginx的四层负载均衡实战

目录 1 环境准备 1.1 mysql 部署 1.2 nginx 部署 1.3 关闭防火墙和selinux 2 nginx配置 2.1 修改nginx主配置文件 2.2 创建stream配置文件 2.3 重启nginx 3 测试四层代理是否轮循成功 3.1 远程链接通过代理服务器访问 3.2 动图演示 4 四层反向代理算法介绍 4.1 轮询&#xff0…

大数据基础:Hadoop之MapReduce重点架构原理

文章目录 Hadoop之MapReduce重点架构原理 一、MapReduce概念 二、MapReduce 编程思想 2.1、Map阶段 2.2、Reduce阶段 三、MapReduce处理数据流程 四、MapReduce Shuffle 五、MapReduce注意点 六、MapReduce的三次排序 Hadoop之MapReduce重点架构原理 一、MapReduce概…

在word中删除endnote参考文献之间的空行

如图&#xff0c;在References中&#xff0c;每个文献之间都有空行。不建议手动删除。打开Endnote。 打开style manager 删除layout中的换行符。保存&#xff0c;在word中更新参考文献即可。

初阶数据结构—排序

第一章&#xff1a;排序的概念及其运用 1.1 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有…