微信小程序(四十八)登入页面跳转与回跳

注释很详细,直接上代码

上一篇

新增内容:
1.在组件中获取当前页面的路由并通过参数传递给登入页面
2.提取传递的参数并在登入成功以后从登入页面回跳到原页面

源码:

app.js

js 复制代码
App({
  globalData:{//定义全局变量
     isLoad:false
  }
 })
 

app.json

json 复制代码
{
  "usingComponents": {
    "auth":"/components/auth/auth"
  },
  "pages": [
    "pages/index/index",
    "pages/begin/begin",
    "pages/start/start"
  ]
}

/components/auth/auth.wxml

xml 复制代码
<!-- 使用properties参数(是否登入) -->
<slot wx:if="{{isLoad}}"></slot>

/components/auth/auth.js

js 复制代码
Component({
  behaviors: [],
  properties: {
    isLoad: {//接收参数(是否登入)
      type: Boolean,
      value: false
    }
  },
  lifetimes: {
    created() {//因为功能限制太多了,所以一般都不用这个
      
    },
    attached() {//这个比较常用
      const app=getApp()

      //如果没有登入
      if(!app.globalData.isLoad){
        const nowPages=getCurrentPages()
        const {route}=nowPages.pop()

        wx.redirectTo({//带参重定向
          url: '/pages/index/index?redirectUrl=/'+route,
        })

        //不延时弹窗提示会卡没
        setTimeout(()=>{
          wx.showToast({
            title: '未登入,已跳转到登入页面,请先登入!',
            icon:'none'
          })
        },1000)
        
      }
    },
    moved() {

    },
    detached() {

    },
  methods: {
    
  }
}
})


  

start.wxml

xml 复制代码
<button bind:tap="onTap" type="primary">进入需要登入才能看的页面</button>

start.js

js 复制代码
// pages/start/start.js
Page({

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

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  onTap(){
    wx.redirectTo({//跳转到登入页面
      url: '/pages/begin/begin',
    })
  }
})

begin.wxml

xml 复制代码
<auth isLoad="{{isLoad}}"><!-- 传输参数(是否登入) -->
  <view class="tip">
  登入以后可以查看的内容
  </view>
</auth>

begin.wxss

css 复制代码
.tip{
  font-size: 60rpx;
  color:palegreen; 
  margin-top: 200rpx;
  padding: 0rpx 30rpx;
  background-color: bisque;
}

begin.js

js 复制代码
// pages/begin/begin.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //参数:是否登入
    isLoad:false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
   //进入这个页面同步登入状态
   const app=getApp()

   this.setData({
     isLoad:app.globalData.isLoad
   })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

index.wxml

xml 复制代码
<button type="primary" bind:tap="inLoad">登入</button>

index.js

js 复制代码
Page({
  data:{
    isLoad:false,
    redirectUrl:''
  },
  onLoad({redirectUrl}){//接收并解构重定向参数
    // console.log(redirectUrl)

    this.setData({//存储跳转之前的页面
      redirectUrl:redirectUrl
    })
  },

  //登入
  inLoad(){
    //修改全局变量为true
    const app=getApp()
    app.globalData.isLoad=true
    //console.log(app.globalData.isLoad)
    
    this.setData({//修改页面数据
      isLoad:app.globalData.isLoad
    })

    //登入以后跳转到之前的页面
    wx.redirectTo({
      url: this.data.redirectUrl
     })
  }
})

效果演示:

相关推荐
万岳科技系统开发5 小时前
外卖配送系统开发中的核心模块拆解与技术选型思路
小程序·开源
低代码布道师13 小时前
教培管家第11讲:班级管理——教务系统的“集成枢纽”
低代码·小程序·云开发
数字游民952714 小时前
小程序上新,猜对了么更新110组素材
人工智能·ai·小程序·ai绘画·自媒体·数字游民9527
小小王app小程序开发17 小时前
盲盒随机赏小程序核心玩法拆解与运营逻辑分析
大数据·小程序
说私域17 小时前
AI智能名片链动2+1模式小程序在消费者商家全链路互动中的应用研究
大数据·人工智能·小程序·流量运营·私域运营
不爱学习小趴菜17 小时前
uniapp微信小程序无法屏蔽右上角胶囊按钮(...)问题解决方案
微信小程序·小程序·uni-app
StarChainTech18 小时前
打造火爆的线上推币机APP:一站式合规娱乐解决方案
大数据·人工智能·物联网·小程序·娱乐·软件需求·共享经济
plmm烟酒僧18 小时前
《微信小程序demo开发》第一部分-编写页面逻辑
javascript·微信小程序·小程序·html·微信开发者工具·小程序开发
2501_9160088918 小时前
iOS 开发助手工具,设备信息查看、运行日志、文件管理等方面
android·ios·小程序·https·uni-app·iphone·webview
Stara051119 小时前
微信小程序配置与导航深度指南—全局/页面配置解析与高效传参策略V1.2
javascript·微信小程序·html·模块化开发·页面导航·wxs脚本·小程序api