ant-design 官网路由跳转后保持当前页同时显示 nprogress 效果怎么实现? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
realJamespond
V2EX    React

ant-design 官网路由跳转后保持当前页同时显示 nprogress 效果怎么实现?

  •  
  •   realJmespond 2024-05-09 18:13:11 +08:00 2808 次点击
    这是一个创建于 520 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://ant-design.antgroup.com/components/cascader-cn
    1 ,跳转不同地址时保持当前页面不变(但是地址已经变化),等分割的模块代码加载完成后再切换到新模块显示。 2 ,umi 默认是立即显示 loading 组件
    3 ,nextjs 是保地址不变先加载模块,加载完成后再切换地址
    但最好还是第一种方案先跳转 url ,再等待加载模块

    10 条回复    2024-05-10 14:39:34 +08:00
    web1996
        1
    web1996  
       2024-05-09 18:51:52 +08:00 via Android
    react router v6 数据路由试试
    ljyst
        2
    ljyst  
       2024-05-09 18:55:33 +08:00
    这个效果得参考文档
    AEP203
        3
    AEP203  
       2024-05-09 22:00:47 +08:00
    不就是 history.pushState 吗
    Charrlles
        4
    Charrlles  
       2024-05-10 09:54:25 +08:00 via iPhone
    看了下仓库,ant design 的文档是用 dumi 生成的,具体怎么实现暂时没找到
    realJamespond
        5
    realJamespond  
    OP
       2024-05-10 11:23:50 +08:00
    @Charrlles 对,刚看了是自定义了 Link 实现的
    epiloguess
        6
    epiloguess  
       2024-05-10 14:06:48 +08:00
    其实和 github 的 repos 页面很类似啊,都加了个 progress,只不过一个提前将地址栏推送过去了.
    https://github.com/ant-design

    github 是在 body 上面加了个 turbo-progress-bar ,然后通过 html 标签的数据属性 aria-busy ,从 width=10%开始递增
    antd 是在 html 加了个类,body 末尾加了个 progress,不过这个过程很短你不一定看得见,你把网络断开,再点一个没点过的,就能看的很明白了.

    不过,这些可能你都懂吧..我的意思是,地址只是表象,毕竟在客户端导航中没有发生跳转,都是 js 在操作

    除了这两种类似的方案,还有一些别的有意思的方案,比如说,astro 为了配合 viewtransition,在 document 上,实现了一套生命周期,,astro:before-preparation,在准备阶段开始时触发的事件,导航开始后(例如,用户点击链接后),但在加载内容之前。这样也能解决 loading 的问题.
    https://docs.astro.build/zh-cn/guides/view-transitions/#astrobefore-preparation
    epiloguess
        7
    epiloguess  
       2024-05-10 14:09:12 +08:00
    除此以外,prefetch+动态导入,配合之下,基本可以完全消灭进度条...
    Wxh16144
        8
    Wxh16144  
       2024-05-10 14:21:12 +08:00
    realJamespond
        9
    realJamespond  
    OP
       2024-05-10 14:35:19 +08:00
    @Wxh16144 最好是用 useTransition 这个特性实现
    Wxh16144
        10
    Wxh16144  
       2024-05-10 14:39:34 +08:00
    @realJamespond 我对 react 这些 api 不是很熟悉,如果你可以去提交 PR 的话就好了,我还能顺便学习一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1388 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 16:49 PVG 00:49 LAX 09:49 JFK 12:49
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86