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

【微信小程序独立开发 3】个人资料页面编写

 这一节完成用户个人信息昵称的填写和获取

上节编写完成后的页面如下所示:

首先进行用户昵称编辑功能的编写,铲屎官昵称采用了navigator标签,当点击昵称时会自动跳转到昵称编辑页面。

首先输入昵称编辑界面的导航栏名称

{"usingComponents": {},"navigationBarTitleText": "编辑昵称"
}

基本页面编写

<!--pages/editNickName/editNickName.wxml-->
<view class="edit_nickName_wrap"><view class="edit_nickName"><input type="text" value="{{nickName}}" placeholder="请输入昵称" bindinput="limitWord"/></view><view class="str_count_wrap"><view class="str_count">{{count}}/10</view></view><view class="tip">昵称支持输入1-10个字,可输入特殊符号,不可与其他用户重复。</view><view class="save_button"><button >保存</button></view>
</view>

当在个人信息页面点击昵称时,跳转昵称编辑页面需要携带一个当前昵称的参数

 并在editNickname页面进行接收,当页面加载时初始化并赋值给页面参数,使用count来获取当前输入框的字符个数,限制输入不超过10个

给输入框编写方法监听当前输入框的字符个数,并修改当前count值

limitWord(e){var value = e.detail.value;var wordLength = parseInt(value.length); //解析字符串长度转换成整数。if (10 < wordLength) {return;}this.setData({nickName: value,count: wordLength});},

 编写less样式

/* pages/editNickName/editNickName.wxss */
page{background-color: #f5f5ed;
}
.edit_nickName_wrap{height: 100vh;.edit_nickName{height: 120rpx;input{font-size: 24rpx;padding-left: 20rpx;margin: 50rpx 50rpx 0rpx 50rpx;border-radius: 20rpx;height: 100rpx;background-color: #fff;}}.str_count_wrap{  display: flex;justify-content: flex-end;.str_count{margin-right: 50rpx;font-size: 24rpx;color: #666;}}.tip{margin: 20rpx 50rpx 20rpx 50rpx;font-size: 24rpx;color: #666;}.save_button{position: relative;button{position: fixed;left: 0;right: 0;bottom: 120rpx;font-weight: 500;font-size: 28rpx;width: 260rpx;border-radius: 30rpx;background-color: #fee05a;}}
}

此时的页面样式如下:

在输入框的右侧添加重置按钮来提高用户体验,图标采用iconfont进行导入 

引入iconfont矢量图标

iconfont-阿里巴巴矢量图标库  

 在小程序平台和pages同级创建文件夹styles,并创建文件iconfont.wxss,将生成的代码复制进去

 

 在app.wxss中引入iconfont.wxss让其全局生效

/**app.wxss**/
@import "./styles/iconfont.wxss"

 使用时class选择器需要选取两个类名选择器,后面为所需的图标

 

 此时页面样式为:

 使用block标签包裹重置图标,当input中字符数为0时隐藏图标

 为图标绑定事件

 clearInput(){this.setData({count: 0,nickName: ''})},

注意:因为图标采用相对定位,实际位置在input层级之下,如果不设置层级的话点击事件不生效,设置z-index来使重置图标位于input之上

设置获取微信用户昵称在输入法中

 将昵称保存在全局变量中,在app.js定义全局变量

// app.js
App({onLaunch() {},globalData: {userInfo: {avatarUrl: 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0',nickName: '铲屎官',userId: '001'}}
})

为保存按钮绑定方法

sendNickName(){app.globalData.userInfo.nickName = this.data.nickName;wx.navigateTo({url: '/pages/userInfo/userInfo',})},

修改userInfo.js文件

// pages/userInfo/userInfo.js
const app = getApp()
Page({/*** 页面的初始数据*/data: {userInfo: {nickName: '',avatarUrl: '',userId: ''}},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.setData({userInfo: {nickName: app.globalData.userInfo.nickName,avatarUrl: app.globalData.userInfo.avatarUrl,userId: app.globalData.userInfo.userId}})},

注意:如果微信昵称为特殊符号如表情,需要在真机调试下查看效果

http://www.lryc.cn/news/281314.html

相关文章:

  • Linux笔记:Linux中的文件系统权限
  • Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4)
  • WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  • 深入理解JVM虚拟机第三十九篇:JVM中新生代和老年代相关参数设置
  • 打造创新的金融数据平台,加速数字化和智能化转型丨PingCAP 官网金融行业专区上线
  • 记ubuntu2004通过NetworkManager修改网络的优先级
  • Android-常用数据结构和控件
  • react使用recoil进行全局状态管理 + axios进行网络请求
  • 基于Springboot的善筹网(众筹网-有报告)。Javaee项目,springboot项目。
  • 【Python学习】Python学习14-函数
  • C语言中对关键字和标识符的理解
  • 基于Jackson封装的JSON、Properties、XML、YAML 相互转换的通用方法
  • windows的换行符与linux风格的换行符不同的问题
  • RK3568笔记九: DRM显示摄像头
  • 简单明了,汽车级LM317系列LM317D2TR4G线性电压稳压器电源设计-参数应用方案分享
  • Flink会话集群docker-compose一键安装
  • qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““
  • vue面试题集锦
  • 2024年学鸿蒙开发就业前景怎么样?
  • Unity网络通讯学习
  • js入口函数和jQuery入口函数的区别
  • Docker-Compose编排Nginx1.25.1+PHP7.4.33+Redis7.0.11环境
  • 《新课程教学》(电子版)是正规期刊吗?能评职称吗?
  • Posgresql macOS安装和基础操作
  • ArkUI-X跨平台已至,何需其它!
  • (2024,分数蒸馏抽样,Delta 降噪分数,LoRA)PALP:文本到图像模型的提示对齐个性化
  • 近日遇到数据库及其他问题
  • 【conda】conda 版本控制和环境迁移/安装conda加速工具mamba /conda常用指令/Anaconda配置
  • “/bin/bash“: stat /bin/bash: no such file or directory: unknown
  • 基于Spring Boot+vue的云上新鲜水果超市商城系统