首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

后台管理的前端页面是不是不适合做成这种带 tab 的功能,如果不是, 怎么解决更新问题?

  •  
  •   yuann72 · 140 天前 · 1330 次点击
    这是一个创建于 140 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://imgchr.com/i/eFnDZd
    就是这种会缓存之前页面的数据的功能,打开 A 功能 > 打开 B 功能 > 再打开 A 功能时,A 功能的数据还是原来的数据不用再请求接口

    在发布文章页面, 发布完文章后, 需要手动刷新文章列表功能或通过埋点去触发刷新机制, 才能使文章列表功能的数据显示的是最新的文章列表.
    这种手动刷新或埋点触发刷新的方式, 在只需要刷新一个功能时还能接受, 但如果遇到发布完文章后, 有 A, B, C, D 好几个功能页面需要刷新来显示最新的数据时要怎么解决

    15 回复  |  直到 2019-07-23 15:29:26 +08:00
        1
    sevenzhou1218   140 天前
    EventEmitter?
        2
    EmotionV   140 天前
    EventBus?
        3
    ismumu   140 天前
    vue keep-alive
        4
    yuann72   140 天前
    @sevenzhou1218 #1 这个一样不行吧

    比如用户管理, 有 A, B, C, D 好几个功能, 展示的数据中包含了用户的用户名, 这样我都要提前在这些功能里设定好事件监听器, 然后我在用户管理功能里修改了某个用户的用户名时, 这些功能才能正常刷新数据
    那如果哪天我又在 A 功能里加了另一个展示数据列, 我还要再增加一个监听器, 要是忘记加了, 那另一列的数据更新了, A 功能里的数据还是不会自动更新
        5
    yuann72   140 天前
    @EmotionV #2 同上
        6
    wangxiaoaer   140 天前 via Android
    左边导航就够了,右边的 tab 感觉多余,尤其是 tab 个数多起来看起来乱,也容易误操作关闭。
        7
    dongsuo   140 天前 via Android
    你去掉 keep alive 就行了,这个项目是开源项目,只是功能展示,有人需要,作者就做了,但是你自己公司的业务代码自己随便搞呀
        8
    zqx   140 天前 via Android
    每个页面数据对应 store 的一个 state 树节点,业务需要时 dispatch 全局 action 更新数据,更新的时候 tab(以及所有用到这个节点的未卸载的页面)由于 props 改变而自动重新渲染
        9
    yuann72   140 天前
    @dongsuo #7 我能想到的最终方法也是去掉 keep alive,但还是想发出看看有没有其他更好的我没想到的方法来比较完美的实现缓存数据和解决更新问题。。。
        10
    LongMaoz   140 天前
    单例模式 VM 层数据共享到所有需要的页面,双向绑定
        11
    lizz666   140 天前
    上上周刚好接到这个需求,基于 vue 开发的,用到了 keep-alive 的 includes 属性,配合组件 name 使用,用的 ele 的 tag 组件
        12
    otakustay   140 天前
    redux + redux-query + normalization
        13
    mystorp   140 天前
    一楼说的 EventEmitter 可以。
    或者使用 vuex

    不管使用哪种,接口请求的数据都是需要和功能代码解耦的。
        14
    agdhole   140 天前 via Android
    用 rxjs
        15
    TrickWu   140 天前
    这个好像是潘神的那个 admin 后台管理吧
    你可以去搜下他的手把手文章
    我记得有写传个 key 参数切换回来的时候回去请求新的数据
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2901 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 12:08 · PVG 20:08 · LAX 04:08 · JFK 07:08
    ♥ Do have faith in what you're doing.