问题描述
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没意义
自己已解决。
nuxt-link 和 router-link 都是走vue-router,这样就不会请求node server端。把链接方式改成用 <a :href="路径"> 就可以了