vue通过Vuex实现多页面的数据联动

一、需求问题

在vue的开发中,可能会经常遇到这样的需求。在一个页面中有一些选择的信息,比如说城市列表信息,当选择不同的城市信息后,所有相关页面的数据都会发生变化,也就是多页面的数据联动。这种多页面的数据联动在外卖平台、生鲜平台、电影平台等等是非常常见的。

二、需求分析

针对多页面的数据联动,我们可以使用Vuex配合本地存储区解决。关于VuexlocalStorage的结合,可以看一下我之前写的一篇文章,文章地址为 https://blog.youkuaiyun.com/weixin_42614080/article/details/103606729。 接下来,我是在此基础上进行的改动。我们可以在data中添加一个数据prevCityId,假设值为-1,表示上一次的城市id数据。然后从状态管理器中去进行取值,拿到状态管理器中的当前城市idcityId。将当前的城市idcityId和上一次的城市idprevCityId 进行比较。如果两者值相等,说明没有发生变化,不发生数据请求。如何两者值不等,说明城市id值发生了变化,就需要重新进行数据请求,同时将当前的城市id值赋值给上一次的城市id值,cityId值也是作为参数拼接在数据请求的接口中。

三、需求实现

代码完整示例如下

<template>
    <div class="movie_body">
        <Loading v-if="isLoading"/>
        <Scroller v-else> 
            <ul>
                <li v-for="item in comingList" :key="item.id">
                    <div class="pic_show" @touchstart="handleToDetail(item.id)"><img :src="item.img | setWH('128,180')"></div>
                    <div class="info_list">
                        <h2>{
   {
    item.nm }}<img v-if="item.version" src="@/assets//maxs.png" alt=""></h2>
                        <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值