当前位置: 首页 > news >正文

用ArkTS写一个登录页面(实现简单的逻辑)

登录页面

1.登录页面编码

在这里插入图片描述

@Extend(TextInput) function customStyle(){.backgroundColor('#fff').border({width:{bottom:0.5},color:'#e4e4e4'}).borderRadius(1) //让圆角不明显.placeholderColor('#c3c3c5').caretColor('#fa711d') //input获取焦点样式
}@Entry
@Component
struct LoginPage {build() {Column(){  //整个登录页面//图片文字部分Column(){Image($r('app.media.avatar')).width(120).aspectRatio(1)Text('面试宝典').fontSize(28).margin({bottom:15})Text('搞定企业面试真题,就用面试宝典').fontSize(15).fontColor('gray')}//表单部分Column({space:15}){TextInput({placeholder:'请输入账号'}).customStyle()TextInput({placeholder:'请输入密码'}).customStyle()Row(){Checkbox().selectedColor('red')//选中的时候都额颜色.width(14).aspectRatio(1).shape(CheckBoxShape.ROUNDED_SQUARE) //也可以是0或是1Text('已阅读并同意').fontSize(14).fontColor('gray')Text(' 用户协议 ').fontSize(14)Text('和').fontSize(14).fontColor('gray')Text(' 隐私政策').fontSize(14)}.width('100%')Button({type:ButtonType.Normal,stateEffect:false}){Text('立即登录').fontColor('#fff')}.width('100%').backgroundColor('transparent') //透明//.stateEffect(false)  //设置button默认点击,false默认不可以点击.borderRadius(4).height(44).linearGradient({  //颜色渐变direction:GradientDirection.Right,colors: [['#FC9B1C',0],['#FA711D',1]]})}.padding({top:30,bottom:80})//其它登录方式Column(){Text('其它登录方式').fontSize(14).fontColor('gray')}}.width('100%').height('100%').padding(15)}
}

2.是否勾选的逻辑

import promptAction from '@ohos.promptAction';@Extend(TextInput) function customStyle(){.backgroundColor('#fff').border({width:{bottom:0.5},color:'#e4e4e4'}).borderRadius(1) //让圆角不明显.placeholderColor('#c3c3c5').caretColor('#fa711d') //input获取焦点样式
}@Entry
@Component
struct LoginPage {@State isAgree:boolean = false; //是否勾选,默认没有勾选//登录按钮逻辑处理login(){if(!this.isAgree){promptAction.showToast({message: '请阅读条款',duration: 5000})} else {promptAction.showToast({message: '登录成功',duration: 5000})}}build() {Column(){  //整个登录页面Button({type:ButtonType.Normal,stateEffect:false}){Text('立即登录').fontColor('#fff')}.width('100%').backgroundColor('transparent') //透明//.stateEffect(false)  //设置button默认点击,false默认不可以点击.borderRadius(4).height(44).linearGradient({  //颜色渐变direction:GradientDirection.Right,colors: [['#FC9B1C',0],['#FA711D',1]]}).onClick(() => {// console.log('login','登录成功')this.login();//登录逻辑处理})}.width('100%').height('100%').padding(15)}
}//checkbox
Checkbox(){}
.onchange((value)=>{this.isAggree = value
})

3.密码框

TextInput({placeholder:'请输入密码'}).customStyle().type(InputType.Password)  //设置类型为密码框

4.获取数据

import promptAction from '@ohos.promptAction';@Extend(TextInput) function customStyle(){.backgroundColor('#fff').border({width:{bottom:0.5},color:'#e4e4e4'}).borderRadius(1) //让圆角不明显.placeholderColor('#c3c3c5').caretColor('#fa711d') //input获取焦点样式
}@Entry
@Component
struct LoginPage {@State isAgree:boolean = false; //是否勾选,默认没有勾选@State username:string = '';//用户名@State password:string = '';//密码//登录按钮逻辑处理login(){//是否勾选同意if(!this.isAgree){promptAction.showToast({message: '请阅读条款',duration: 5000})return; //结束}//输入的校验let reg = /^[a-zA-Z0-9_]{3,10}$/if(reg.test(this.username) == false){promptAction.showToast({message: '用户名输入格式错误',duration: 5000})return; //结束}let reg_pwd = /^[a-zA-Z0-9_]{6,}$/if(reg_pwd.test(this.password) == false){promptAction.showToast({message: '密码输入格式错误',duration: 5000})return; //结束}promptAction.showToast({message: '登录成功'+ this.username + '--->'+ this.password,duration: 5000})}build() {Column(){  //整个登录页面//表单部分Column({space:15}){TextInput({placeholder:'请输入账号'}).customStyle().onChange((value)=>{this.username = value})TextInput({placeholder:'请输入密码'}).customStyle().type(InputType.Password).onChange((value)=>{this.password = value})Row(){Checkbox().selectedColor('red')//选中的时候都额颜色.width(14).aspectRatio(1).shape(CheckBoxShape.ROUNDED_SQUARE) //也可以是0或是1.onChange((value)=>{// console.log('login',value)this.isAgree = value //修改状态值})}.width('100%')Button({type:ButtonType.Normal,stateEffect:false}){Text('立即登录').fontColor('#fff')}.width('100%').backgroundColor('transparent') //透明//.stateEffect(false)  //设置button默认点击,false默认不可以点击.borderRadius(4).height(44).linearGradient({  //颜色渐变direction:GradientDirection.Right,colors: [['#FC9B1C',0],['#FA711D',1]]}).onClick(() => {// console.log('login','登录成功')this.login();//登录逻辑处理})}}.width('100%').height('100%').padding(15)}
}

http://www.mrgr.cn/news/69572.html

相关文章:

  • java程序打包及执行 jar命令及运行jar文件
  • 【论文复现】基于标签相关性的多标签学习
  • GitLab 如何降级?
  • 使用OpenCV(C++)通过鼠标点击操作获取图像的像素坐标和像素值
  • Docker 基础命令介绍和常见报错解决
  • Kafka基础知识学习
  • 1.4 算法设计策略与分析方法
  • 测试实项中的偶必现难测bug--苹果支付丢单问题
  • Linux2 指令(二)
  • 计算机网络(3)
  • 基于Springboot+Vue的心理咨询系统 (含源码数据库)
  • 如何选情绪龙头
  • 单页面应用和多页面应用区别及优缺点
  • 【Docker容器化技术】docker安装与配置、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
  • 从认识 VNode VDOM 到实现 mini-vue
  • 【含文档】基于ssm+jsp的流浪动物收养系统(含源码+数据库+lw)
  • 关于我的编程语言——C/C++——第八篇
  • 大华Android面试题及参考答案
  • C#实现:电脑系统信息的全面获取与监控
  • cell队列监控
  • Redis相关技术内容
  • 花指令例子
  • Java期末复习暨学校第二次上机课作业
  • Python | Leetcode Python题解之第554题砖墙
  • 系统安全第七次作业题目及答案
  • 高并发内存池介绍