beforeCreate不能与Nuxt.js中的asyncData相同[关闭]

问题描述 投票:0回答:1
[当我学习Nuxt.js时,我发现asyncData等待数据加载,以便它可以创建组件。然后甚至在创建组件之前就执行beforeCreate。我的问题是它们不能一样工作。
vue.js nuxt.js
1个回答
1
投票
Well beforeCreate在实例初始化之后,在数据观察和事件/观察者设置之前立即被同步调用。

asyncData的区别在于beforeCreate发生在您的浏览器中,asyncData发生在服务器端。

这意味着在asyncData中,您无法访问localStoragefetch()document之类的内容,因为它是在服务器端执行的。

但是asyncData提供了一个称为context的参数。

上下文有点特殊,它允许您访问例如Vuex商店女巫通常位于客户端:https://nuxtjs.org/api/context/

asyncData(context){ console.log(context.store); //you need to check your server console NOT! your browser console }

您经常会看到人们使用ES6解构来访问该属性:

asyncData({ store }){ console.log(store); //you need to check your server console NOT! your browser console }

当然,您可以解构更多属性:

asyncData({ store, redirect, query, params }){ console.log(store); //you need to check your server console NOT! your browser console }

© www.soinside.com 2019 - 2024. All rights reserved.