64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Vue
		
	
	
<docs>
 | 
						||
---
 | 
						||
order: 4
 | 
						||
title:
 | 
						||
  zh-CN: 加载中状态
 | 
						||
  en-US: Loading
 | 
						||
---
 | 
						||
 | 
						||
## zh-CN
 | 
						||
 | 
						||
添加 `loading` 属性即可让按钮处于加载状态,最后两个按钮演示点击后进入加载状态。
 | 
						||
 | 
						||
## en-US
 | 
						||
 | 
						||
A loading indicator can be added to a button by setting the `loading` property on the `Button`.
 | 
						||
</docs>
 | 
						||
 | 
						||
<template>
 | 
						||
  <a-space style="width: 100%">
 | 
						||
    <a-button type="primary" loading>Loading</a-button>
 | 
						||
    <a-button type="primary" size="small" loading>Loading</a-button>
 | 
						||
  </a-space>
 | 
						||
  <a-space style="width: 100%">
 | 
						||
    <a-button type="primary" :loading="loading" @mouseenter="loading = true">
 | 
						||
      mouseenter me!
 | 
						||
    </a-button>
 | 
						||
    <a-button type="primary" :loading="iconLoading" @click="enterIconLoading">
 | 
						||
      <template #icon><PoweroffOutlined /></template>
 | 
						||
      延迟1s
 | 
						||
    </a-button>
 | 
						||
  </a-space>
 | 
						||
  <a-space style="width: 100%">
 | 
						||
    <a-button type="primary" loading />
 | 
						||
    <a-button type="primary" shape="circle" loading />
 | 
						||
    <a-button danger shape="round" loading />
 | 
						||
  </a-space>
 | 
						||
</template>
 | 
						||
<script lang="ts">
 | 
						||
import { defineComponent, ref } from 'vue';
 | 
						||
import { PoweroffOutlined } from '@ant-design/icons-vue';
 | 
						||
 | 
						||
interface DelayLoading {
 | 
						||
  delay: number;
 | 
						||
}
 | 
						||
export default defineComponent({
 | 
						||
  components: { PoweroffOutlined },
 | 
						||
  setup() {
 | 
						||
    const iconLoading = ref<boolean | DelayLoading>(false);
 | 
						||
    const enterIconLoading = () => {
 | 
						||
      iconLoading.value = { delay: 1000 };
 | 
						||
 | 
						||
      setTimeout(() => {
 | 
						||
        iconLoading.value = false;
 | 
						||
      }, 6000);
 | 
						||
    };
 | 
						||
    return {
 | 
						||
      loading: ref(false),
 | 
						||
      iconLoading,
 | 
						||
      enterIconLoading,
 | 
						||
    };
 | 
						||
  },
 | 
						||
});
 | 
						||
</script>
 |