• demo页面

    如果您使用我们的种子工程,那么可以尝试使用以下代码,如果您是在其他hzero工程,请按照它的规范来。

    这里不再讲解关于react、es6、less等基础内容。

    import * as React from 'react';
    import { connect } from 'dva'; // connect了之后,就不需要withRouter了
    import { Button, message } from 'hzero-ui'; // 这玩意无限接近ant design,但还请看hzero-ui文档
    import { routerRedux } from 'dva/router'; // 路由
    import notification from 'utils/notification'; // 封装自hzero-ui/notification
    import { Header, Content } from 'components/Page'; // 如果是header+content的形式的化,用这两个组件
    import { Bind } from 'lodash-decorators';
    
    import styles from './homeworkComponent.less';  // css module
    
    @connect(({ homeworkModel, loading }) => ({
      homeworkModel,
      loadingGet: !!loading.effects['modelName/effectName'], // 当这个effect的接口调用时,this.props.loadingGet就为true
      loadingGetData1: !!loading.effects['homeworkModel/getData1'], // 当这个effect的接口调用时,this.props.loadingGet就为true
    }))
    export default class homeworkComponent extends React.Component {
      // 建议都写构造函数
      constructor(props) {
        super(props);
        this.state = {};
      }
    
      // 生命周期函数vscode自动补出来就行,不用箭头函数的形式
      componentDidMount() {
        // 接口可以放在这调用,进入页面调一次
      }
    
      @Bind
      getData() {
        this.props.dispatch({
          type: 'homeworkModel/getData1',
        }).then(res => {
          // eslint-disable-next-line
          console.log(res);
    
          notification.success({message: 'click'});
        });
      }
    
      // 非生命周期函数,只能这么写,用@Bind修饰器,不要写成箭头函数
      @Bind
      jumpToOtherPage() {
        this.props.dispatch(
          routerRedux.push({
            // 路由跳转
            pathname: `路由文件里的path字段`,
          })
        );
      }
    
      render() {
        const {
          homeworkModel,
        } = this.props;
    
        return (
          <>
            <Header title="header标题">
              <Button>
                click
              </Button>
              {/* Header内部是flex布局,flex-direction: row-reverse;(倒序);下面这个div会在左侧,把Button往右边挤 */}
              <div style={{ flex: 1 }} />
            </Header>
            <Content>
              <div className={styles.homeworkComponent}>
                homeworkComponent
              </div>
            </Content>
            {/* <Modal>
              Modal、滑窗等
            </Modal> */}
          </>
        );
      }
    }
    
    

    另外,less文件,我们建议最外层包裹一个类名,类名尽可能复杂,反正也只写一次,可以拼接路径。

    // 驼峰命名,同一个less文件中,类名不要重名
    .routeMymoduleMyfolderIndex {
      .testClass {
        color: red;
      }
    }