• 微信号:wumiao_357234902

[微信小程序] 参数传递、参数获取,获取当前页面url

作者:Miao 阅读:9810次

首先在小程序中,所有页面的路由都由框架统一管理。getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

// 获取加载的页面对象
const pages = getCurrentPages();
// 获取当前页面的对象
const currentPage = pages[pages.length - 1];

tips:

1.不要尝试修改页面栈,会导致路由以及页面状态错误。

2.不要在 App.onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。

一、获取当前页面url

// 当前页面url
const url = currentPage.route;

二、参数传递

1.全局变量,小程序初始化时会读取app.js文件,我们可以在这里配置全局变量,如:图片访问地址、请求地址、appid等等。

globalData: {
	appid: '123654',
	requestUrl: 'https://www.test.com/'
}

在页面中,可以通过 getApp()方法获取到全局应用对象,可以进行读取或更改。

var app = getApp();
var appid = app.globalData.appid;

2.小程序本地缓存

可以将一些常用变量(如appid)或者用户行为(如搜索历史)、长期不改变的图片(减少请求)等。本地缓存一经储存,其它页面均可随时获取使用。

// 存储
wx.setStorageSync("appid", "123654");
// 读取
wx.getStorageSync("appid");

3.url传递

这个方法较适用于页面之前跳转(如商品列表跳转商品详情),直接拼接在url里就可以了。

wx.navigateTo({
    url: '../test/test?id=1'
})

获取方式:

  • getCurrentPages() 函数获取

const options = currentPage.options;
  • onLoad里直接获取

onLoad: function (options) {
    console.log(options) 
}

小结:

小程序参数、数据传递包括不限于以上几种,大家可以结合实际情况使用,如:

  • 全局变量,就在app.js配置

  • 父、子及传递可以使用url传递

  • 登录状态(token)等可以使用本地缓存,方便随时调用

本站部分文章、数据、素材收集于网络,所有版权均归源网站或原作者所有!

如果侵犯了您的权益,请来信告知我们下线删除,邮箱:357234902@qq.com