小程序鸿毛框架(四)路由/跳转

           这一章封装一个路由跳转的类,小程序的跳转如果传参数的话挺麻烦,所以为了节省代码我就也在自己的项目中封装了一个,跳转还是经常会用到的,希望能帮助需要的人哈。代码都是微信小程序的,如果是支付宝的把wx改my基本就可以了

        router.js

/*
路由是基于 wx.navigate 简单的封装
示例:pageA和pageB中查看
*/
const router = {
  // PUSH页面
  // url:page路径
  // params:传的参数
  push: function (url, params) {
    let url_params = this.urlParams(params);
    wx.navigateTo({
      url: url + url_params,
    })
  },
  // 返回 delta:返回的层数 不传默认为 1
  back: function (delta = 1) {
    wx.navigateBack({delta: delta});
  },
  // 重定向
  // url:page路径   
  // params:传的参数
  redirect: function (url, params) {
    let url_params = this.urlParams(params);
    wx.redirectTo({url: url + url_params})
  },
  // 获取当前栈中所有的pages
  pages: function () {
    return wx.getCurrentPages();
  },
  // 把params拼接一起
  urlParams: function (params) {
    if (!params) {
      return '';
    }
    let content = '';
    let index = 0;
    for (var key in params) {
      if (index == 0) {
        content += '?' + key + '=' + params[key];
      } else {
        content += '&' + key + '=' + params[key];
      }
      index++;
    }
    return content;
  }
}

module.exports = router;

  实例:从pageA和pageB的交互

pages/pageA/index.js

// pages/pageA/index.js

const Router = require("./router.js");

Page({
    onLoad: function (options) {
     
    },
    // push页面
    bindPush(){
      Router.push('/pages/pageB/index',{desc:"push from pageA"});
    },
    //重定向
    bindRedirect(){
      Router.redirect('/pages/pageB/index',{desc:"redirect  from pageA"});
    }
})

pages/pageB/index.js

// pages/pageB/index.js

const Router = require("./router.js");

Page({
    onLoad: function (options) {
     console.log(options);
    },
    // 返回页面
    bindBack(){
      Router.back(1);
    },
    //当前栈中的页面对象
    getPages(){
      let pages = Router.pages();
      console.log(pages);
    }
})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值