按着官方文档的用法来使用
beforeRouteEnter (to, from, next) {
next(vm => {
// 通过 `vm` 访问组件实例
})
}
consloe.log(vm)的时候能看到里面的数据
console.log(vm.userMessage)的时候就获取不到了
userMessage是我从请求中返回的数据
如果我访问data里已经有了的数据都话却又能访问成功,这是为什么呢?
比如说
cosole.log(navArr)
按着官方文档的用法来使用
beforeRouteEnter (to, from, next) {
next(vm => {
// 通过 `vm` 访问组件实例
})
}
consloe.log(vm)的时候能看到里面的数据
console.log(vm.userMessage)的时候就获取不到了
userMessage是我从请求中返回的数据
如果我访问data里已经有了的数据都话却又能访问成功,这是为什么呢?
比如说
cosole.log(navArr)
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
你的数据是异步获取的,路由刚进入的时候,请求还没回来(甚至可能还没发出,next可能早于created被调用,要看源码),那当然拿不到数据。
而打印vm,只是打印它的引用,而它的字段,都被vue处理成响应式数据,你不去获取,就不会有值。而等到你点开里面的userMessage,这时候数据已经回来了。
你可以用watch监视userMessage来实现你的需求