美文网首页
前端开发

前端开发

作者: Perity | 来源:发表于2018-10-30 21:01 被阅读0次

    项目准备

    1.node环境

    2.react + typescript + antd + webpack + mobx + inversify + styled-components

    项目运行

    git clone git@gitlab.jiangzheinfo.cn:weixin-web/weixin-sample.git
    
    npm install
    
    npm start
    

    功能开发

    返回的用户信息用于展示

    {
      "code": 200,
      "msg": "获取成功",
      "data": {
        "name": "张三",
        "age": 22,
        "sex": 1
      }
    }
    

    1.定义Service

    @bean($PeopleService)
    export class $PeopleService {
    
        public getInfo = () => {
            return AjaxUtils.post('/demo', {})
        };
    
    }
    

    2.定义Bean

    @bean($People)
    export class $People extends $BaseEntity {
        @observable
        public name: string;
        @observable
        public age: number;
        @observable
        public sex: Sex;
    }
    

    3.定义MV

    @bean($PeopleMV)
    export class $PeopleMV {
    
        @autowired($PeopleService)
        public $peopleService: $PeopleService;
    
        @observable
        public $people: $People;
    
        @action
        public getInfo = () => {
            this.$peopleService.getInfo()
                .then(responseHelper)
                .then(data => this.$people = new $People(data))
        }
    }
    

    4.UI组件渲染

    @observer
    class Index extends React.Component<any, any> {
    
        @autowired($Theme)
        public $theme: $Theme;
    
        @autowired($PeopleMV)
        public $peopleMV: $PeopleMV;
    
        constructor(props) {
            super(props);
            this.state = {};
        }
    
        public componentDidMount() {
            this.$peopleMV.getInfo();
        }
    
        public render() {
            const { $people } = this.$peopleMV;
            return (
                <SPeopleDiv>
                    <div>姓名:{$people && $people.name}</div>
                    <div>年龄:{$people && $people.age}</div>
                    <div>性别:{$people && SexMap[$people.sex]}</div>
                </SPeopleDiv>
            );
        }
    }
    
    export default withRouter(Index);
    

    5.样式组件styled-components简单使用

    const SPeopleDiv = styled.div`// styled
      & {
        position: relative;
        padding: 0.3rem;
        line-height: 2;
      }
    `;
    
    

    相关文章

      网友评论

          本文标题:前端开发

          本文链接:https://www.haomeiwen.com/subject/otnwzftx.html