当前位置:   article > 正文

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

小程序个人介绍页面

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

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

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

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

  1. {
  2. "usingComponents": {},
  3. "navigationBarTitleText": "编辑昵称"
  4. }

基本页面编写

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

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

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

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

  1. limitWord(e){
  2. var value = e.detail.value;
  3. var wordLength = parseInt(value.length); //解析字符串长度转换成整数。
  4. if (10 < wordLength) {
  5. return;
  6. }
  7. this.setData({
  8. nickName: value,
  9. count: wordLength
  10. });
  11. },

 编写less样式

  1. /* pages/editNickName/editNickName.wxss */
  2. page{
  3. background-color: #f5f5ed;
  4. }
  5. .edit_nickName_wrap{
  6. height: 100vh;
  7. .edit_nickName{
  8. height: 120rpx;
  9. input{
  10. font-size: 24rpx;
  11. padding-left: 20rpx;
  12. margin: 50rpx 50rpx 0rpx 50rpx;
  13. border-radius: 20rpx;
  14. height: 100rpx;
  15. background-color: #fff;
  16. }
  17. }
  18. .str_count_wrap{
  19. display: flex;
  20. justify-content: flex-end;
  21. .str_count{
  22. margin-right: 50rpx;
  23. font-size: 24rpx;
  24. color: #666;
  25. }
  26. }
  27. .tip{
  28. margin: 20rpx 50rpx 20rpx 50rpx;
  29. font-size: 24rpx;
  30. color: #666;
  31. }
  32. .save_button{
  33. position: relative;
  34. button{
  35. position: fixed;
  36. left: 0;
  37. right: 0;
  38. bottom: 120rpx;
  39. font-weight: 500;
  40. font-size: 28rpx;
  41. width: 260rpx;
  42. border-radius: 30rpx;
  43. background-color: #fee05a;
  44. }
  45. }
  46. }

此时的页面样式如下:

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

引入iconfont矢量图标

iconfont-阿里巴巴矢量图标库  

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

 

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

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

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

 

 此时页面样式为:

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

 为图标绑定事件

  1. clearInput(){
  2. this.setData({
  3. count: 0,
  4. nickName: ''
  5. })
  6. },

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

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

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

  1. // app.js
  2. App({
  3. onLaunch() {
  4. },
  5. globalData: {
  6. userInfo: {
  7. avatarUrl: 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0',
  8. nickName: '铲屎官',
  9. userId: '001'
  10. }
  11. }
  12. })

为保存按钮绑定方法

  1. sendNickName(){
  2. app.globalData.userInfo.nickName = this.data.nickName;
  3. wx.navigateTo({
  4. url: '/pages/userInfo/userInfo',
  5. })
  6. },

修改userInfo.js文件

  1. // pages/userInfo/userInfo.js
  2. const app = getApp()
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. userInfo: {
  9. nickName: '',
  10. avatarUrl: '',
  11. userId: ''
  12. }
  13. },
  14. /**
  15. * 生命周期函数--监听页面加载
  16. */
  17. onLoad(options) {
  18. this.setData({
  19. userInfo: {
  20. nickName: app.globalData.userInfo.nickName,
  21. avatarUrl: app.globalData.userInfo.avatarUrl,
  22. userId: app.globalData.userInfo.userId
  23. }
  24. })
  25. },

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/279602
推荐阅读
相关标签
  

闽ICP备14008679号