• 介绍
  • 开发新模块

    介绍

    本章节讲述了如何使用Choerodon 和React 开发一个全新的模块。

    开发新模块

    1、在本地创建新模块的文件夹。

    1. $ mkdir -p choerodon-front-demo/demo/src/app/demo/containers

    2、在文件夹下创建config.jswebpack.config.js,并修改。

    1. $ cd choerodon-front-demo
    2. $ touch config.js
    1. // config.js
    2. const config = {
    3. local: true, //是否为本地开发
    4. clientId: 'localhost', // 必须填入响应的客户端(本地开发)
    5. titlename: 'Demo', //项目页面的title名称
    6. // favicon: 'favicon.ico', //项目页面的icon图片名称
    7. theme: {
    8. 'primary-color': '#3F51B5',
    9. },
    10. cookieServer: '', // 子域名token共享
    11. server: 'http://localhost:8080', // 后端接口服务器地址
    12. port: 9090 // 端口
    13. };
    14. module.exports = config;

    3、在子文件夹下创建package.json文件,并修改。

    1. $ cd demo
    2. $ touch package.json
    1. {
    2. "name": "choerodon-front-demo",
    3. "version": "1.0.0",
    4. "description": "",
    5. "main": "src/app/demo/containers/DEMOIndex.js",
    6. "scripts": {
    7. "start": "choerodon-front-boot start --config ../config.js",
    8. "build": "choerodon-front-boot build --config ../config.js"
    9. },
    10. "contributors": [
    11. "choerodon"
    12. ],
    13. "license": "ISC",
    14. "dependencies": {
    15. "choerodon-front-boot": "0.7.2"
    16. }
    17. }

    4、创建Index文件,文件名为模块名大写+Index

    1. $ touch src/app/demo/containers/DEMOIndex.js
    1. // DEMOIndex.js
    2. import React from 'react';
    3. import { Route, Switch } from 'react-router-dom';
    4. import { inject } from 'mobx-react';
    5. import { asyncLocaleProvider, asyncRouter, nomatch } from 'choerodon-front-boot';
    6. @inject('AppState')
    7. class DEMOIndex extends React.Component {
    8. render() {
    9. const { match, AppState } = this.props;
    10. return (
    11. <Switch>
    12. <Route path={'*'} component={nomatch} />
    13. </Switch>
    14. );
    15. }
    16. }
    17. export default DEMOIndex;

    5、在package.json 同级的目录下,安装并启动。

    1. $ npm install
    2. $ npm run start

    6、查看效果

    在浏览器中键入 localhost:9090,查看页面效果。