【愚公系列】《微信小程序与云开发从入门到实践》018-实现一个简单的小程序登录页面

举报
愚公搬代码 发表于 2024/12/29 11:37:45 2024/12/29
【摘要】 标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。博客内容.NET、...
标题 详情
作者简介 愚公搬代码
头衔 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
近期荣誉 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
博客内容 .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
欢迎 👍点赞、✍评论、⭐收藏

🚀前言

在微信小程序的开发中,登录页面是用户首次接触应用的重要环节。一个设计良好、功能完善的登录页面不仅可以提升用户体验,还能有效提升用户的留存率和转化率。本篇文章将带你一步步实现一个简单而实用的小程序登录页面,帮助你掌握登录功能的基本实现技巧。

我们将从零开始,介绍登录页面的设计思路、组件选择与布局,以及如何处理用户输入和验证。在过程中,我们还会分享一些常见问题的解决方案,确保你能够顺利实现这一功能。

无论你是刚刚入门的小程序开发者,还是希望提升技能的开发者,这篇文章都将为你提供有价值的实践经验和实用的代码示例。让我们一起动手构建一个简洁而高效的小程序登录页面,提升用户的首次体验吧!

🚀一、实现一个简单的小程序登录页面

本节通过一个小程序登录页面来练习常见的页面组件使用。需要注意的是,本节并不涉及实际的用户登录功能,而仅仅是实现用户界面(UI)。

🔎1.页面框架代码

loginDemo 页面文件夹中创建一个 login.wxml 文件,代码如下:

<!-- pages/loginDemo/loginDemo.wxml -->
<view class="containerView">
  <view class="header">
    <text>登录/注册</text>
  </view>
  <view class="tip">
    <text>请输入您的账号</text>
  </view>
  <view class="input">
    <input class="accountInput" placeholder="输入账号..." model:value="{{account}}"/>
  </view>
  <view class="input">
    <input class="accountInput" placeholder="输入密码..." password model:value="{{password}}"/>
    <view class="checkbox">
      <checkbox model:checked="{{checked}}"></checkbox>
      <text class="normal">登录/注册即表示同</text>
      <text class="highlight" bindtap="nav1">《隐私协议》</text>
      <text class="normal"></text>
      <text class="highlight" bindtap="nav2">《服务协议》</text>
    </view>
  </view>
  <view class="buttonView">
    <button type="primary" style="width: 100%;" disabled="{{account.length == 0 || password.length == 0 || !checked}}" bindtap="confirm">确认</button>
  </view>
  <view class="footer">
    <text>微信小程序学习示例代码</text>
  </view>
</view>

🔎2.组件解释

  1. 双向数据绑定

    • <input><checkbox> 组件中,使用 model:valuemodel:checked 实现数据双向绑定。这样,页面上的组件值和 JS 文件中的数据是同步的。
    • 如果 JS 文件中的 accountpassword 发生改变,页面显示会更新;反之,用户操作时,变量值也会更新。
  2. 按钮禁用条件

    • 登录按钮只有在 accountpassword 不为空且用户勾选了协议时才可点击,使用了 disabled 属性来控制按钮的禁用状态。

🔎3.页面逻辑代码

loginDemo.js 中编写如下逻辑代码:

// pages/loginDemo/loginDemo.js
Page({
  data: {
    account: "",    // 用户名
    password: "",   // 密码
    checked: false, // 是否勾选协议
  },

  // 确认按钮点击事件
  confirm: function() {
    wx.showModal({
      content: `账号: ${this.data.account}, 密码: ${this.data.password}`,
      title: "进行登录/注册"
    });
  },

  // 跳转隐私协议页面
  nav1: function() {
    wx.showToast({
      title: "跳转隐私协议"
    });
  },

  // 跳转用户协议页面
  nav2: function() {
    wx.showToast({
      title: "跳转用户协议"
    });
  }
});
  • wx.showModalwx.showToast 是小程序框架提供的弹出提示框和弹出确认框的方法,用来模拟用户操作结果。

🔎4.样式代码

为实现较好的页面布局效果,需要编写样式。在 loginDemo.wxss 文件中编写如下样式:

/* pages/loginDemo/loginDemo.wxss */
.header {
  font-size: 25px;
  margin-left: 20px;
  margin-top: 15px;
  font-weight: bold;
}

.tip {
  margin-left: 20px;
  margin-top: 10px;
  font-size: 13px;
  color: #515151;
}

.input {
  margin-left: 20px;
  width: calc(100% - 40px);
  margin-top: 20px;
}

.accountInput {
  border-bottom: #919191 1px solid;
  height: 40px;
}

.checkbox {
  margin-left: 15px;
  margin-top: 10px;
}

.checkbox checkbox {
  transform: scale(0.7, 0.7);
}

.normal {
  font-size: 12px;
}

.highlight {
  font-size: 12px;
  color: cornflowerblue;
}

.buttonView {
  margin-top: 50px;
  margin-left: 20px;
  width: calc(100% - 40px);
}

.footer {
  position: absolute;
  bottom: 20px;
  text-align: center;
  width: 100%;
  font-size: 14px;
  color: gray;
}

🔎5.页面效果

通过编译和运行上述代码,可以看到页面的布局和样式已初步完成,但可能仍需进一步优化。最终的页面效果如图所示。

在这里插入图片描述
在这里插入图片描述

🔎6.总结

  1. 基础组件使用:本示例中使用了 <input>, <checkbox>, <button>, <view>, <text> 等常见组件。
  2. 双向绑定:通过 model:valuemodel:checked 实现了数据的双向绑定,确保页面与 JS 文件的数据同步。
  3. 条件禁用按钮:使用 disabled 属性实现按钮的条件禁用,只有在满足条件时,按钮才可点击。
  4. 跳转逻辑:通过 wx.showToastwx.showModal 模拟了协议页面跳转和用户登录逻辑。

这段代码展示了如何通过小程序的基础组件实现一个简单的登录界面,并使用一些常见的开发技巧来优化界面和交互体验。

事实上,在项目开发中很少使用到本节所做的登录注册页面,由于微信本身就有很强的社交属性,小程序提供的开放功能中有用户授权相关的接口,小程序可以直接借助微信用户信息来构建自己的用户体系。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。