【发布时间】:2018-02-14 07:07:37
【问题描述】:
我正在使用 Nuxt JS/Vue 创建一个 SEO 友好的服务器端渲染 JS Web 应用程序。 Nuxt 允许在每个 Vue 组件中设置 head 选项,然后通过 vue-meta 更新页面标题。我根据路由获取用户,然后将title 设置为用户名。这在运行本地服务器时有效。但是当我将它推送到 Firebase 时,我得到 title 未定义(刷新时)。
Vue 组件:
<template>
<div class="user">
<h3>{{ name }}</h3>
</div>
</template>
<script>
import axios from 'axios'
export default {
data () {
return {
title: 'test'
}
},
head () {
return {
title: this.name,
meta: [
{
hid: 'description',
name: 'description',
content: 'My custom description'
}
]
}
},
async asyncData ({ params, error }) {
try {
const { data } = await axios.get(`https://jsonplaceholder.typicode.com/users/${+params.id}`)
return data
} catch (e) {
error({ message: 'User not found', statusCode: 404 })
}
},
mounted () {
console.log(this.name)
this.title = this.name
}
}
</script>
【问题讨论】:
-
据我所知,您应该为此使用布局文件。
-
我遇到了同样的问题。如果我发现任何有用的东西,会回来报告。
标签: javascript vue.js vuejs2 nuxt.js