给整个所有的el-button添加loading事件
时间: 2023-12-06 15:05:14 浏览: 111
你可以使用 Element UI 提供的全局配置来为所有的 `<el-button>` 组件添加 loading 事件。具体实现步骤如下:
1. 在 `main.js` 中导入 Element UI:
```js
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
```
2. 在 `main.js` 中配置全局 loading 样式:
```js
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI, {
// 全局 loading 样式配置
loading: {
text: 'Loading...', // loading 文字
background: 'rgba(0, 0, 0, 0.7)', // 背景色
spinner: 'el-icon-loading', // loading 图标
fullscreen: true // 是否全屏显示
}
});
```
在上面的代码中,我们使用了 `Vue.use(ElementUI, options)` 方法来配置全局 loading 样式。其中,`options` 对象中的 `loading` 属性用于配置全局 loading 样式。这里我们配置了 loading 文字、背景色、loading 图标、是否全屏显示等参数。
3. 在组件中使用 `<el-button>` 组件:
```html
<template>
<el-button @click="fetchData">加载数据</el-button>
</template>
```
在上面的代码中,我们在组件中使用了 `<el-button>` 组件,并且添加了 `@click` 事件,当点击按钮时会触发 `fetchData` 方法。
4. 在 `fetchData` 方法中使用 `this.$loading` 显示 loading 样式:
```js
export default {
methods: {
fetchData() {
const loadingInstance = this.$loading({
text: 'Loading...', // loading 文字
background: 'rgba(0, 0, 0, 0.7)', // 背景色
spinner: 'el-icon-loading', // loading 图标
fullscreen: true // 是否全屏显示
});
// 发送请求获取数据
// ...
loadingInstance.close(); // 数据加载完成后关闭 loading 样式
}
}
}
```
在上面的代码中,我们在 `fetchData` 方法中使用 `this.$loading` 方法显示 loading 样式,并且传入了 loading 文字、背景色、loading 图标、是否全屏显示等参数。在数据加载完成后,我们调用 `loadingInstance.close()` 方法关闭 loading 样式。
通过上面的步骤,我们就为所有的 `<el-button>` 组件添加了 loading 样式。当点击按钮时,会触发 `fetchData` 方法,该方法中会显示 loading 样式,直到数据加载完成后关闭 loading 样式。
阅读全文