使用sessionStorage来动态获取页面传递的数据

本文介绍了在特殊情况下,如何利用sessionStorage来动态传递页面参数。当项目中使用iframe,使得Vuex无法正常工作时,通过在搜索页面设置sessionStorage,跳转详情页后监听sessionStorage的变化,实现页面参数的实时更新。详细步骤包括设置sessionStorage、在详情页添加storage方法以及在详情页中watch参数变化。
摘要由CSDN通过智能技术生成

特殊情况下使用sessionStorage来做组件页面传参

最近遇到一个问题,好比第一个是搜索页面,进行搜索后,点击搜索结果来跳转到另外一个页面,此时第二个打开的页面需要搜索结果中的某个参数,一般情况下,使用vuex即可很方便的进行两个无明显关联页面的传参,但是这个项目使用了iframe,无法这样进行传参,然后想到了url后面携带参数,在route路由里面设置props为true,即可拿到这个参数,但是新的问题是,原来的搜索页面没有关闭,第二个打开的页面也没有关闭,在搜索页继续换其他结果进行点击,此时url路径上面的参数虽然改变了,但是watch是监听不到变化的,这时,了解到了sessionStorage是有个监听里面参数变化的方法的,可以利用这个方法,来进行参数变化重新调用相关方法。

第一步,设置sessionStorage

在第一个搜索列表页面设置一个cardId

window.sessionStorage.setItem('cardId', cardId);

第二步,在跳转的详情页添加 storage 方法

在第二个进行跳转的搜索结果详情页面里面添加storage方法,用法如下:

   created() {
        // 监听session里面 cardId 改变事件
        window.addEventListener('storage', item => {
            if (item.key == 'cardId'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值