项目作者: tanghuibo

项目描述 :
element ui自带loading的button
高级语言: JavaScript
项目地址: git://github.com/tanghuibo/element-ui-loading-button.git
创建时间: 2020-04-20T15:15:45Z
项目社区:https://github.com/tanghuibo/element-ui-loading-button

开源协议:

下载


element ui loading button

loading-button 基于element ui 的 el-button 组件,在原有功能上为其增加 loadingClick 事件。

使用方式

用户点击 loading-button 时,按钮自动进入 loading 状态,需要回调 loadingClick 第一个参数 finishLoading 方法才能取消按钮的 loading 状态。

实现方式

render 函数实现

  1. export default {
  2. data() {
  3. return {
  4. myLoading: false,
  5. };
  6. },
  7. render(h) {
  8. return h(
  9. "el-button",
  10. {
  11. attrs: {
  12. ...this.$attrs,
  13. loading: this.myLoading || this.$attrs.loading,
  14. },
  15. on: {
  16. ...this.$listeners,
  17. click: () => {
  18. this.$listeners.click & this.$listeners.click();
  19. if (this.$listeners.loadingClick) {
  20. this.myLoading = true;
  21. this.$emit("loadingClick", () => (this.myLoading = false));
  22. }
  23. },
  24. },
  25. },
  26. this.$slots.default
  27. );
  28. }
  29. };

jsx 实现

  1. export default {
  2. data() {
  3. return {
  4. myLoading: false,
  5. };
  6. },
  7. render() {
  8. return (
  9. <el-button
  10. attrs={{
  11. ...this.$attrs,
  12. loading: this.myLoading || this.$attrs.loading,
  13. }}
  14. on={{
  15. ...this.$listeners,
  16. click: () => {
  17. this.$listeners.click & this.$listeners.click();
  18. if (this.$listeners.loadingClick) {
  19. this.myLoading = true;
  20. this.$emit("loadingClick", () => (this.myLoading = false));
  21. }
  22. },
  23. }}
  24. loading={this.myLoading || this.$attrs.loading}
  25. >
  26. {this.$slots.default}
  27. </el-button>
  28. );
  29. },
  30. };