Nuxt:无法在 'created' 生命周期中在服务器上设置数据 属性
Nuxt: can't set data property on server in 'created' lifecycle
我尝试在服务器上的“已创建”生命周期方法中为 属性 设置一个值,但该值仍然为空(其默认值)。
(我使用 typescript 和基于 class 的组件)
export default class FunClass extends Vue {
@Prop() data!: any;
myProp : any = null;
created() {
if (process.server) {
this.myProp = this.data.interestingData;
}
}
}
所以一定有什么规则我漏掉了?
我试过 asyncData
但它只适用于页面(我无法从那里访问任何道具)。
如果你想在任何地方(页面、组件、布局等)处理你的数据,你可以使用 fetch()
钩子,它非常方便,因为它有像 [=11= 这样的助手] 并且它不会阻塞,因此您可以在加载数据时显示一些不错的 skeletons,例如 Instagram/Facebook.
有关更多信息,您可以在 Nuxt 中查看有关 data fetching 的文档。
如果您想对 fetch() vs asyncData
有更多不同意见,这里有一个 有很多不同的好答案。
我尝试在服务器上的“已创建”生命周期方法中为 属性 设置一个值,但该值仍然为空(其默认值)。
(我使用 typescript 和基于 class 的组件)
export default class FunClass extends Vue {
@Prop() data!: any;
myProp : any = null;
created() {
if (process.server) {
this.myProp = this.data.interestingData;
}
}
}
所以一定有什么规则我漏掉了?
我试过 asyncData
但它只适用于页面(我无法从那里访问任何道具)。
如果你想在任何地方(页面、组件、布局等)处理你的数据,你可以使用 fetch()
钩子,它非常方便,因为它有像 [=11= 这样的助手] 并且它不会阻塞,因此您可以在加载数据时显示一些不错的 skeletons,例如 Instagram/Facebook.
有关更多信息,您可以在 Nuxt 中查看有关 data fetching 的文档。
如果您想对 fetch() vs asyncData
有更多不同意见,这里有一个