vue-vben-admin/src/views/hooks/request/refresy-deps.tsx

44 lines
1.2 KiB
TypeScript
Raw Normal View History

import { defineComponent, ref, unref } from 'vue';
import { Card, Typography, Select } from 'ant-design-vue';
import { imitateApi } from './mock-api';
import { useRequest } from '@vben/hooks';
import { PageWrapper } from '@/components/Page';
const options = [
{ label: 'Jack', value: 'Jack' },
{ label: 'Lucy', value: 'Lucy' },
{ label: 'Lutz', value: 'Lutz' },
];
const Demo1 = defineComponent({
setup() {
const select = ref('Lutz');
const { data, loading } = useRequest(() => imitateApi(select.value), { refreshDeps: [select] });
return () => (
<Card title="依赖刷新">
<Typography>
<Typography.Paragraph>
useRequest
<Typography.Text type="danger"> options.refreshDeps </Typography.Text>
</Typography.Paragraph>
</Typography>
<Select v-model={[select.value, 'value']} options={options} style="width: 220px" />
<p>Username: {loading.value ? 'Loading' : unref(data)}</p>
</Card>
);
},
});
export default defineComponent({
setup() {
return () => (
<PageWrapper>
<Demo1 />
</PageWrapper>
);
},
});