每次加载路由器视图或安装组件时,是否可以避免从API获取数据,这是否是一种好的做法?
问题是有些数据很少改变(比如下拉选项列表,想象一下我的应用程序允许选择的动物),逻辑上不需要每次都向服务器发送请求,而是在应用程序创建时就足够了。
在App.vue中试用,这是常见的事情吗?
在应用程序版本中
import { computed, onMounted, onUpdated, ref } from 'vue';
onMounted(()=>{
axios.get('/data')....
.then((res)=>{
store.property = res.data
...
})
})
2条答案
按热度按时间e1xvtsh31#
我认为在App.vue组件中挂载它是可以接受的,因为应用程序组件不会被重新挂载。
然而,理想的设置取决于一些其他参数,如应用程序的大小和维护它的团队的大小。在大型应用程序中,您可能希望以更结构化和一致的方式组织内容,以便您和其他代码工作人员知道在哪里可以找到内容。
您可以考虑将API调用移到pinia操作中。
这样组件中的代码行就更少了。拥有“精益”组件并将“业务逻辑”移出组件通常会使组织更好,从而更容易维护。
在操作中,您可以跟踪API的状态
显然,这是比较冗长的,但是允许组件更小,包含更少的逻辑,然后,例如,在您的组件中,您可以使用getter
isLoading
来显示加载指示器,或者在另一个组件中使用isLoaded
来确定是否显示它。eqoofvh92#
是,这是将一些数据加载到Vue应用程序中的常用方法。
您还可以在
beforeMount()
或created()
生命周期挂钩中的Mounting
之前加载数据(参见Vue生命周期图),以防止不必要的HTML更新。