【发布时间】:2018-05-20 14:53:01
【问题描述】:
我是 Nuxt 的新手 - 将我的 vue 应用程序转换为它,并将其用于生产:gameslate.io
应用程序正在使用asyncData 方法获取游戏列表 - 但是完整的布局并未在服务器上呈现...
如果您查看页面源代码,您会看到 Nuxt 将所有数据放入 window.__NUXT__,但没有网格 html。
使用asyncData获取数据后如何在服务器上渲染完整的布局?
否则,谷歌无法抓取游戏列表 - 这对 SEO 来说毫无用处...(查看 twitter 的页面源 - 它会加载包括动态内容在内的整个页面)
这是进行 asyncData 调用的“主页”页面组件(简化版):
<template>
<div>things</div> <!-- rendered on server -->
<game-grid :games="games"></game-grid> <!-- rendered in browser -->
</template>
<script>
export default {
data() {
return {
games: []
}
}
async asyncData() {
let games = await getGames(filters);
return { games };
}
}
</script>
【问题讨论】:
-
我可以从您的网站中看到中可能有问题,您能否在此处分享该副本或相同副本的代码,以便我们更好地理解它。意思是在'game-grid'组件的代码中@HardikSatasiya 添加了代码示例你有什么解决办法吗?我也面临同样的问题
标签: javascript vue.js server-side-rendering nuxt.js