js 判断窗口是否已经打开了url_微信小程序云开发教程微信小程序的JS高级页面间数据传递...

  同学们大家好,我是小伊同学,上一节课我们讲解了全局数据的读写方法,那么在页面间同样需要数据交互,今天我们就来学习这部分内容。

  在微信小程序中,我们常常需要将数据在页面之间进行传递,比如用户的身份信息,在不同页面的接口中都需要这个参数,服务端通过这个参数来判断是哪个用户请求了服务。因此,数据在页面之间的传递在小程序开发中也是必不可少的。

ee39588bb28e0209be781405180906ad.png

  页面间数据传递主要有两种方式,第一种,通过页面跳转过程中携带参数,另一种方式是将数据保存在全局数据中,每个页面再从全局数据中读取。在本小程序中,我们主要使用了第二种,因此我们将讲解第二种方式,对于第一种同学们可以通过微信开发者文档进行学习。

ed5836269683d6617bea366959eec171.png

  具体来说,我们可以通过URL传递参数。在原页面中,js文件中调用API进行跳转时在URL路径结尾后带参数。参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 "path?key=value&key2=value2" 。

  在打开的新页面中,js文件中onLoad函数接收参数中含有传递过来的数据。例如这里的示例,我们已经学过redirectTo是页面跳转的api,当我们执行后,在新页面就可以收到id变量,由于字符串可以拼接,我们可以在左边写成id=然后引号结束加号加上变量值。

720cab5778b673014f7390d2d41fb3f5.png

  其次,可以通过页面间事件通信通道(EventChannel)传递参数

在原页面中,js文件中调用API进行跳转时在success回调函数中向被打开页面传送数据。在打开的新页面中,js文件中onLoad函数持续监听事件获取页面传递参数。同样是传递id参数,我们分别拷贝使用这两段代码打开事件通信通道即可。

49ea1eb85536ab0bfc2a3b47279567df.png

  下面我们来比较一下这几种方式。URL传递参数,只能从在A页面打开B页面时,从A页面向B页面传递参数。事件通信通道(EventChannel)传递参数,在A页面打开B页面时,可以从A页面向B页面传递参数,也可以同时从B页面向A页面传递参数(我们刚才只介绍了前者,后者给大家作为作业自学)。

  这两种方式通常用于传递简单数据,如标志信息、id信息和字符串等,使用时需要依赖路由API。而全局数据交互:不介意页面的打开顺序,通常用于传递重要共享数据,该数据往往在多个页面都需要而不仅仅限于两个页面之间,使用时需要使用getApp()。

  日拱一卒,功不唐捐。涓流所积,终成沧海。

想看视频版?

关注公号“微程序学堂”,我们的视频教程即将上线

如果你自己写了好文章想投稿

请联系我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值