vue-router文档里面route的data属性是用于加载和设置当前组件的数据的
但是,我在组件的ready状态下发送请求感觉也是挺合理的,而且切换几个view之后不会重新请求。
而如果在route的data中设置请求的话,似乎每次都需要重新请求。
是不是可以认为,如果数据不需要每次切换都重新请求的,就不用在route里面请求?
vue-router文档里面route的data属性是用于加载和设置当前组件的数据的
但是,我在组件的ready状态下发送请求感觉也是挺合理的,而且切换几个view之后不会重新请求。
而如果在route的data中设置请求的话,似乎每次都需要重新请求。
是不是可以认为,如果数据不需要每次切换都重新请求的,就不用在route里面请求?
个人理解,route的data可以用于获取路由参数,通过这些参数发送请求,取得数据,可以实现“组件刚载进来就已经拿到数据并完成渲染”。如果放在ready里面,得是“组件加载进来完成以后再请求数据”,感觉会没那么迅速,而且有时候某些场合,比如组件的嵌套,放在route的data里面请求数据是更合适的。
不过即使如此,我也觉的LZ的理解也是可以的,毕竟灵活运用嘛
你的数据可以做几级缓存,比如本地存储,访问接口,
if(本地存储){
}else{
访问接口
}
第一次访问的时候,肯定是访问接口的,拿到数据后存到本地存储,再赋值给data中的变量,以后进来就直接拿本地存的了
写在ready里面 如果你route是keep的话,第2次进来是不会执行的。
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
data 不是个属性,它是个路由切换的时候的一个生命周期函数。它获取一个
transition
对象作为参数,这个特点是组件的 ready 阶段所不具有的。当路径包含动态片段的时候,有时候需要根据这个动态的值来决定渲染的结果,比如说:
这种情况必须要在 route 的生命周期函数里面来处理。