微信小程序学习笔记2——关于个人中心实现登录后隐藏登录注册按钮显示头像及用户名

news/2024/7/20 2:07:05 标签: 小程序

本科课程作业写了个基础的小程序在这里记录分享一下,如有错误欢迎指出。

判断是否登录隐藏按钮

一开始写好登录注册发现,当我登录成功后个人中心页面还保留着登录注册按钮,于是翻阅了微信小程序开发文档查找如何隐藏按钮的方法。
在微信官方的开发文档中找到条件渲染语句的用法:
在这里插入图片描述
然后考虑到隐藏和显示包含了多个view,所以用block来承载这个条件渲染:
在这里插入图片描述

wxml代码

<scroll-view scroll-y class="scrollPage">
  <view class="UCenter-bg">
    <block wx:if="{{id}}">//判断条件 id是否为空
      <image src="{{userimg}}" class="png" mode="widthFix" bindtap="userimgsc"></image>
      <view class="margin-top-sm">
        <text>欢迎回来,{{username}}!</text>
      </view>
    </block>
    <block wx:else>//id为空则显示登录注册按钮
      <button bindtap='signzhuan' class="button">注册</button>
      <button bindtap='loginzhuan' class="button">登录</button>
    </block>
    <image src="https://raw.githubusercontent.com/weilanwl/ColorUI/master/demo/images/wave.gif" mode="scaleToFill" class="gif-wave"></image>
  </view>
  <view class="cu-list menu card-menu margin-top-xl margin-bottom-xl shadow-lg radius">

    <view class="cu-item arrow">
      <view class="content" bindtap="shoucangjia">
        <text class="cuIcon-writefill text-cyan"></text>
        <text class="text-grey">我的收藏</text>
      </view>
    </view>

    <view class="cu-item arrow">
      <view class="content" bindtap="wdsc">
        <text class="cuIcon-formfill text-green"></text>
        <text class="text-grey">我的上传</text>
      </view>
    </view>

    <view class="cu-item arrow">
      <view class="content" bindtap="photostop">
        <text class="cuIcon-creativefill text-orange"></text>
        <text class="text-grey">上传图片</text>
      </view>
    </view>
  <view class="cu-tabbar-height"></view>
</scroll-view>

wxss用的colorUI

js代码

登陆成功后会将该用户的openid传入全局变量,根据全局变量中的该字段判断用户是否登录。

  1. 在app.js中加入新字段
    this.globalData = {
      nowuseropid:null
    }
  1. 在登录的js中加入传入变量代码(该段代码加入到登录成功的条件下)
app.globalData.nowuseropid = app.globalData.openid
  1. 在个人中心的js中利用openid在用户集合中查询该用户的用户名、头像信息
 const app = getApp()
 const db = wx.cloud.database({   //引用云数据库
  env: '云开发环境名'			//云开发环境ID
});
 const 自己起的名userListDB = db.collection('集合名');
  Page({

  /**
   * 页面的初始数据
   */
  data: {
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let that = this;
    console.log('id', app.globalData.nowuseropid)
    this.setData({
      id:app.globalData.nowuseropid//传入视图层 判断是否登录
    })
    if(app.globalData.nowuseropid!=null){//进行判断 不为空则进行查询
      userListDB.where({
        _openid:app.globalData.nowuseropid
      }).get({
        success: function (res){
          that.setData({
            username:res.data[0].name,
            userimg:res.data[0].userimg
          })
          console.log('姓名',res.data[0].name)
          console.log('图片',res.data[0].userimg)
        }
      })
    }
  },
  signzhuan() {//注册按钮
    wx.navigateTo({
      url: '/pages/sign/sign',
    })
  },
  loginzhuan() {//登录按钮
    wx.navigateTo({
      url: '/pages/login/login',
    })
  },
  photostop(){//上传按钮
    let that = this;
    if(that.data.username==null){
      wx.showModal({
        title: '提示',
        content: '请先登录!',
        success: function (res) {
          if (res.confirm) {
            console.log('用户点击确定')
            that.loginzhuan();
          }
        }
      })
    }else{
      wx.navigateTo({//跳转上传界面
        url: '/pages/sc/sc',
      })
    }

  },
  wdsc(){//查看我的上传按钮
    let that = this;
    if(that.data.username==null){
      wx.showModal({
        title: '提示',
        content: '请先登录!',
        success: function (res) {
          if (res.confirm) {
            console.log('用户点击确定')
            that.loginzhuan();
          }
        }
      })
    }else{
      wx.navigateTo({//跳转我的上传页面
        url: '/pages/wdsc/wdsc',
      })
    }

  },
  shoucangjia(){//查看收藏夹按钮
    let that = this;
    if(that.data.username==null){
      wx.showModal({
        title: '提示',
        content: '请先登录!',
        success: function (res) {
          if (res.confirm) {
            console.log('用户点击确定')
            that.loginzhuan();
          }
        }
      })
    }else{
      wx.navigateTo({//跳转收藏夹界面
        url: '/pages/shoucangjia/shoucangjia',
      })
    }
  },
})

http://www.niftyadmin.cn/n/827260.html

相关文章

不同的二叉搜索树

给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 思路&#xff1a;动态规划 F(i,n)表示以i为根节点&#xff0c;n为长度的构成的总数。 G(n)表示长度为n构成的总数。 G(n)F(i,n…

AjaxPro.AjaxNamespace

首先下载ajaxpro.dll&#xff0c;你可以从http://www.ajaxpro.info/获得。最新版本是7.7.31.1&#xff0c;下载解压后的文件夹中有个AjaxPro.dll&#xff0c;就是它了。使用VS2008新建web项目,并添加对AjaxPro.dll的引用&#xff0c;然后在Web配置文件中添加&#xff1a; Code&…

PAT乙级 1003 我要通过! (20分)

PAT乙级练习总结 PAT乙级 1003 我要通过&#xff01; (20分) 第二版有注释&#xff0c;希望我的思路可以帮助你。 文章目录PAT乙级练习总结一、1003题目二、第一版只过了三个点三、第二版1003 我要通过&#xff01;总结一、1003题目 输入样例&#xff1a; 8 PAT PAAT AAPATAA A…

HttpHandler简单应用

IHttpHandler 概述可能和我一样&#xff0c;很多Asp.Net开发人员都有过Asp的背景&#xff0c;以至于我们在开发程序的时候&#xff0c;通常都是在“页面级”上思考&#xff0c;也就是说我们现在正在做的这个页面应该有什么样的功能&#xff0c;是进行一个问卷调查还是一个数据库…

打家劫舍(动态规划)

你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。给定一个代表每个房屋存放金额的非…

PAT乙级 1005 继续(3n+1)猜想 (25分)

PAT乙级练习总结 PAT乙级 1005 继续(3n1)猜想 (25分) 希望我的思路可以帮助你。 文章目录PAT乙级练习总结一、1005题目二、分析一、1005题目 输入样例&#xff1a; 6 3 5 6 7 8 11输出样例&#xff1a; 7 6二、分析 根据题目最多输入100位&#xff0c;且输入的数为1<n<10…

JavaScript中扩展字符串与Date对象之间的转换,支持大多数日期格式的字符串(包括中文)...

首先是对日期字符串的判断&#xff0c;支持格式yyyyMMdd, dd-MM-yyyy, yyyy-MM-dd, yyyy/MM/dd, dd/MM/yyyy, yyyy.MM.dd, dd.MM.yyyy,等任意相同分隔符&#xff08;需程序员自己定义&#xff09; 和yyyy年MM月dd日等多种格式&#xff0c;最重要的是支持瑞年2月的判断和每月30号…

十三种排序算法实现

内部排序插入直接折半二路希尔选择直接二路堆交换冒泡鸡尾酒快速归并二路归并基数计数外部排序内部排序 插入 直接 void insert(int arr[],int n){//时间复杂度O(n^2) 空间复杂度 O(1)int i,j;for(i1;i<n;i){int keyarr[i];for(ji-1;j>0&&arr[j]>key;j--…