同步操作将从 attojs/vue-request 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
English | 简体中文
v1 版本后续不会添加新的功能,只会对出现的 BUG 进行维护。想体验最新的功能,请切换到 v2 版本。v2 版本正在 RC 阶段,详情可以查看 next 分支。文档将随着正式版本发布。
在以往的业务项目中,常常被 loading 状态的管理、请求的节流防抖、接口数据的缓存、分页等这些重复的实现所困惑。每当开启一个新项目时,我们都得手动去处理以上这些问题,这将是一个重复性的工作,而且还得确保团队的一致。
VueRequest 旨在为开发者提供便捷、快速的方式来管理接口的状态。在业务开发中省去上述的那些“脏活累活”,只需要简单的配置即可使用,专注于业务核心的开发。
你可以通过 NPM、YARN 或者通过 <script>
的方式引入 unpkg.com 上的包。
npm install vue-request
# or
yarn add vue-request
对于生产环境,我们推荐链接到一个明确的版本号和构建文件,以避免新版本造成的不可预期的破坏。
<script src="https://unpkg.com/vue-request/dist/vue-request.min.js"></script>
一旦你在页面中添加了它,你就可以在 window.VueRequest
中访问我们导出的方法。
<template>
<div>
<div v-if="loading">loading...</div>
<div v-if="error">failed to fetch</div>
<div v-if="data">Hey! {{ data }}</div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
setup() {
const { data, loading, error } = useRequest(service);
return {
data,
loading,
error,
};
},
});
</script>
在这个例子中,useRequest
接收了一个 service
函数。service
是一个异步的请求函数,换句话说,你可以使用 axios 来获取数据,然后返回一个 Promise。更具体的说明可以在文档中查看。
useRequest
还返回了三个值, data
、loading
和 error
。当请求还没完成时, data
将会为 undefined
同时,loading
将被设置为 true
。当请求完成后,则将会根据请求结果来设定 data
和 error
,并对页面进行渲染。这是因为 data
、 loading
和 error
是 Vue 的 响应式引用(Refs),它们的值将根据请求状态及请求结果来修改。
VueRequest 有非常多的特性,如 错误重试、缓存、分页、节流、防抖...,这里列举两个个比较酷的特性
有些时候,你要确保多个浏览器窗口之间数据的一致性;又或者是当用户电脑在休眠状态重新激活后,页面的数据需要同步到最新状态时。refreshOnWindowFocus
可能会为你节省很多逻辑代码。点击这里直达文档
const { data, error, run } = useRequest(getUserInfo, {
refreshOnWindowFocus: true,
refocusTimespan: 1000, // 请求间隔时间
});
有些时候,你要确保多个设备间数据的同步更新。这时候可以用我们提供的 pollingInterval
来定期重新请求接口,这样就可以保证多设备间的数据一致性。当用户进行修改数据时,两个窗口将会实时同步更新。点击这里直达文档
const { data, error, run } = useRequest(getUserInfo, {
pollingInterval: 1000, // 请求间隔时间
});
如果你有很酷的想法,欢迎提交 issue 以便我们讨论
感谢他们为我们提供了灵感
MIT License © 2020-present AttoJS
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。