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

[前端] Nuxt 服务器渲染,有大佬遇过浏览器当前页面刷新,不执行 asyncData 方法的吗?(非 query 的问题)

  •  1
     
  •   dan666 · 2019-07-09 21:10:58 +08:00 · 4813 次点击
    这是一个创建于 1974 天前的主题,其中的信息可能已经有所发展或是发生改变。

    (哭了,留下了不学无术的泪水)

    7 条回复    2019-07-10 12:02:10 +08:00
    dan666
        1
    dan666  
    OP
       2019-07-09 21:11:10 +08:00
    (已经各种查过方法了)
    jimliang
        2
    jimliang  
       2019-07-09 21:30:48 +08:00   ❤️ 1
    服务端渲染的话,界面首次渲染是在服务端进行,你应该看 asyncData 有没有在服务端执行。
    dan666
        3
    dan666  
    OP
       2019-07-09 21:37:44 +08:00
    @jimliang 我留意到是这样
    触发 asyncData 刷新:
    ( 1 )线上构建后第一次访问;
    ( 2 )页面内部 nuxtLink 跳转访问。
    不触发 asyncData 刷新:
    ( 1 )手动输入地址到地址栏内访问
    ( 2 )当前有 asyncData 的页面手动 reload
    ZY2071
        4
    ZY2071  
       2019-07-09 21:57:18 +08:00   ❤️ 1
    翻了下以前写的代码,用 process.server 存在与否做一个判断来切换一下接口地址,函数是执行的,只是报错蹦了。
    dan666
        5
    dan666  
    OP
       2019-07-09 22:06:08 +08:00
    @ZY2071
    大佬,小弟愚钝,get 不到点,现在用的都是同一个接口地址( http ),切换成什么样的接口地址才不会崩溃呢?
    然后为什么 nuxtLink 切换的话,就不会“崩”呢?
    现在用的是相对路径的写法。
    我思考下 orz
    dan666
        6
    dan666  
    OP
       2019-07-09 22:12:45 +08:00
    @ZY2071 人间喜剧!居然,居然,写死了 url 就可以了!
    哇!
    哇!
    哇!
    陷入了人身大思考!
    jimliang
        7
    jimliang  
       2019-07-10 12:02:10 +08:00   ❤️ 1
    我猜楼主肯定是没处理服务端渲染时调用接口时的情况,这时候是服务端环境而不是浏览器环境,注意不要用相对路径。而且要把 cookie 带过去,否则首次渲染时识别不了用户身份,无法登录。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1009 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:44 · PVG 05:44 · LAX 13:44 · JFK 16:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.