JSPM

  • Created
  • Published
  • Downloads 2969
  • Score
    100M100P100Q98600F
  • License MIT

Loader component

Package Exports

  • @uiw/react-loader
  • @uiw/react-loader/cjs/index.js
  • @uiw/react-loader/esm/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@uiw/react-loader) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Loader 加载器

Open in unpkg NPM Downloads npm version

用于页面和区块的加载中状态。

import { Loader } from 'uiw';
// or
import Loader from '@uiw/react-loader';

基础实例

import React from 'react';
import { Loader } from "uiw";

function Demo() {
  return <div>
    <Loader size="small" />
    <Loader />
    <Loader size="large" />
  </div>
}

export default Demo

警告提示中加载

import React, { Component } from 'react';
import { Loader, Row, Col, Message, Icon, Button } from "uiw";

class Demo extends Component {
  constructor(props) {
    super(props);
    this.state = {
      loading: true,
    };
  }
  render() {
    return (
      <div>
        <Row gutter={10}>
          <Col>
            <Button
              style={{ marginBottom: 10 }}
              size="small"
              onClick={() => {
                this.setState({
                  loading: !this.state.loading,
                });
              }}
            >
              点击切换加载状态
            </Button>
          </Col>
        </Row>
        <Row gutter={10}>
          <Col fixed>
            <Loader loading={this.state.loading}>
              <Message
                type="success"
                title="成功提示标题"
                description={
                  <span>
                    <Icon
                      type="uiw"
                      verticalAlign="baseline"
                      style={{ fill: "#009688" }}
                    />
                    这里是成功提示详情描述。
                  </span>
                }
              />
            </Loader>
          </Col>
          <Col fixed>
            <Loader loading={this.state.loading}>
              <Message
                type="warning"
                title="成功提示标题"
                description="这里是成功提示详情描述。"
              />
            </Loader>
          </Col>
        </Row>
      </div>
    );
  }
}
export default Demo

卡片加载中

import React from 'react';
import { Loader, Card, Col, Row } from "uiw";

function Demo() {
  return <Row gutter={10}>
    <Col fixed>
      <Card
        title="图标与文字一行显示"
        extra={<a href="#">更多</a>}
        style={{ minWidth: 230 }}
      >
        <Loader color="red" tip="加载中..." style={{ width: "100%" }}>
          <div>
            卡片内容
            <br />
            卡片内容
            <br />
            卡片内容
            <br />
          </div>
        </Loader>
      </Card>
    </Col>
    <Col fixed>
      <Card
        title="图标与文字垂直显示"
        extra={<a href="#">更多</a>}
        style={{ minWidth: 230 }}
      >
        <Loader tip="loading..." vertical style={{ width: "100%" }}>
          <div>
            卡片内容
            <br />
            卡片内容
            <br />
            卡片内容
            <br />
          </div>
        </Loader>
      </Card>
    </Col>
    <Col fixed>
      <Card
        title="自定义背景颜色"
        extra={<a href="#">更多</a>}
        style={{ minWidth: 230 }}
      >
        <Loader
          bgColor="rgba(0, 0, 0, 0.4)"
          color="#fff"
          tip="loading..."
          vertical
          style={{ width: "100%" }}
        >
          <div>
            卡片内容
            <br />
            卡片内容
            <br />
            卡片内容
            <br />
          </div>
        </Loader>
      </Card>
    </Col>
  </Row>
}
export default Demo

自定义加载图标动画

import React from 'react';
import { Loader, Card, Icon } from "uiw";

function Demo() {
  return <div>
    <Card title="Card标题" extra={<a href="#">更多</a>} style={{ width: 300 }}>
      <Loader
        tip="加载中..."
        color="red"
        indicator={
          <Icon
            type="loading"
            spin={true}
            style={{ verticalAlign: "text-top" }}
          />
        }
        style={{ width: "100%" }}
      >
        <div>
          卡片内容
          <br />
          卡片内容
          <br />
          卡片内容
          <br />
        </div>
      </Loader>
    </Card>
  </div>
}

export default Demo

整页加载

页面数据加载时显示。

import React from 'react';
import { Loader, Icon, Button } from "uiw";

class Demo extends React.Component {
  constructor() {
    super();
    this.state = {
      fullscreen: false,
    };
  }
  render() {
    return (
      <div>
        <Button
          style={{ marginBottom: 10 }}
          type="primary"
          onClick={() => {
            this.setState(
              {
                fullscreen: !this.state.fullscreen,
              },
              () => {
                setTimeout(() => {
                  this.setState({
                    fullscreen: !this.state.fullscreen,
                  });
                }, 3000);
              }
            );
          }}
        >
          显示整页加载,3 秒后消失
        </Button>
        {this.state.fullscreen && (
          <Loader
            tip="加载中..."
            size="large"
            bgColor="rgba(255, 255, 255, 0.9)"
            fullscreen={this.state.fullscreen}
          />
        )}
      </div>
    );
  }
}

export default Demo

Props

参数 说明 类型 默认值
size 尺寸 Enum{small, default, large} default
loading 是否旋转 Boolean true
indicator 加载指示符,可以加载一个 Icon 动画 ReactNode -
tip 当作为包裹元素时,可以自定义描述文案 String -
color 设置图标与文字的颜色 String -
vertical 图标与文字垂直显示 Boolean -
bgColor 自定义背景颜色 String -
fullscreen 是否全屏显示 Boolean false