1.14.0 • Published 8 months ago
@aspida/swrv v1.14.0
@aspida/swrv
Getting Started
Installation
Using npm:
$ npm install aspida @aspida/swrv @aspida/axios swrv axios # $ npm install aspida @aspida/swrv @aspida/fetch swrv # $ npm install aspida @aspida/swrv @aspida/node-fetch swrv node-fetch
Using Yarn:
$ yarn add aspida @aspida/swrv @aspida/axios swrv axios # $ yarn add aspida @aspida/swrv @aspida/fetch swrv # $ yarn add aspida @aspida/swrv @aspida/node-fetch swrv node-fetch
Make HTTP request from application
src/index.vue
<template>
<div>
<div v-if="error">failed to load</div>
<div v-if="!data">loading...</div>
<div v-else>hello {{ data.name }}</div>
</div>
</template>
<script lang="ts">
import { defineComponent } from "@vue/composition-api";
import useAspidaSWRV from "@aspida/swrv";
import aspida from "@aspida/axios"; // "@aspida/fetch", "@aspida/node-fetch"
import api from "../api/$api";
const client = api(aspida());
export default defineComponent({
name: "Profile",
setup() {
const { data, error } = useAspidaSWRV(client.user._userId(123), { query: { name: "mario" } });
return { data, error };
},
});
</script>
Get response body/status/headers
src/index.vue
<template>
<div>
<div v-if="error">failed to load</div>
<div v-if="!data">loading...</div>
<template v-else>
<div>Status: {{ data.status }}</div>
<div>Headers: {{ JSON.stringify(data.headers) }}</div>
<div>Name: {{ data.body.name }}</div>
</template>
</div>
</template>
<script lang="ts">
import { defineComponent } from "@vue/composition-api";
import useAspidaSWRV from "@aspida/swrv";
import aspida from "@aspida/axios"; // "@aspida/fetch", "@aspida/node-fetch"
import api from "../api/$api";
const client = api(aspida());
export default defineComponent({
name: "Profile",
setup() {
const { data, error } = useAspidaSWRV(client.user._userId(123), "get", {
query: { name: "mario" },
});
return { data, error };
},
});
</script>
useAspidaSWRV(client.user._userId(123), { query })
is an alias of useAspidaSWRV(client.user._userId(123), "$get", { query })
Use with SWRV options
src/index.vue
<template>
<div>
<div v-if="error">failed to load</div>
<div v-if="!data">loading...</div>
<div v-else>hello {{ data.name }}</div>
</div>
</template>
<script lang="ts">
import { defineComponent } from "@vue/composition-api";
import useAspidaSWRV from "@aspida/swrv";
import aspida from "@aspida/axios"; // "@aspida/fetch", "@aspida/node-fetch"
import api from "../api/$api";
const client = api(aspida());
export default defineComponent({
name: "Profile",
setup() {
const { data, error } = useAspidaSWRV(client.user._userId(123), {
query: { name: "mario" },
revalidateDebounce: 0,
});
return { data, error };
},
});
</script>
Dependent Fetching
const { data: user } = useAspidaSWRV(client.user);
const { data } = useAspidaSWRV(() => user.value && client.articles, {
query: { userId: user?.id ?? 0 },
});
License
@aspida/swrv is licensed under a MIT License.
1.13.2
9 months ago
1.14.0
8 months ago
1.13.1
9 months ago
1.13.0
9 months ago
1.13.3
9 months ago
1.12.0
1 year ago
1.11.0
2 years ago
1.10.3
2 years ago
1.10.2
2 years ago
1.10.1
2 years ago
1.10.0
2 years ago
1.9.1
2 years ago
1.9.0
2 years ago
1.8.1
2 years ago
1.8.0
2 years ago
1.7.1
3 years ago
1.7.0
3 years ago
1.6.3
3 years ago
1.6.2
3 years ago
1.6.1
3 years ago
1.6.0
3 years ago
1.5.0
3 years ago
1.4.1
3 years ago
1.4.0
3 years ago
1.3.0
3 years ago
1.2.1
3 years ago
1.2.0
3 years ago
1.1.1
3 years ago
1.1.0
3 years ago
1.0.0
3 years ago
0.2.2
3 years ago
0.2.1
4 years ago
0.2.0
4 years ago
0.1.3
4 years ago
0.1.2
4 years ago
0.1.1
4 years ago
0.1.0
4 years ago