nuxt asyncData不执行,手动刷新会执行

问题描述

pages下的界面,列表点击<nuxt-link>跳转到 detail 界面,detail界面的asyncData不能执行server代码

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

  async asyncData({
    app,
    isDev,
    route,
    store,
    env,
    params,
    query,
    req,
    res,
    redirect,
    error
  }) {
    // 引入 markdown 处理工具
    const MarkdownIt = require('markdown-it')
    // 以下的代码是要运行在服务端的,
    if (process.server) {
      // todo http地址需要更换为配置地址
      let [res1, res2] = await Promise.all([
        app.$axios.get(`/api/findXXXInfo?id=${query.sectionId}`),
        app.$axios.get(`/api/findXXXXInfo?id=${query.threadId}`)
      ])
      // 实例化markdown工具
      let md = new MarkdownIt()
      // 转换markdown文本为html文本
      let body = res2.data.body ? md.render(res2.data.body) : ''
      return {
        sectionInfo: res1.data,
        thread: res2.data,
        threadBody: body,
        author: res2.data.authorInfo || {},
        comments: res2.data.comments || {}
      }
    }
  },

你期待的结果是什么?实际看到的错误信息又是什么?

asyncData可以执行,不执行的话,SSR没意义

阅读 5.8k
1 个回答

自己已解决。
nuxt-link 和 router-link 都是走vue-router,这样就不会请求node server端。把链接方式改成用 <a :href="路径"> 就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题