ant+dva Ract系統前端開發教程

ant+dva Ract系統前端開發教程

開發準備:

基本知識:

1、React http://reactjs.cn/react/docs/getting-started-zh-CN.htmlhttp://www.runoob.com/react/react-tutorial.html
2、React on ES6 http://babeljs.io/blog/2015/06/07/react-on-es6-plus
3、react-router http://www.uprogrammer.cn/react-router-cn/
4、mockjs http://mockjs.com/
5、webpack http://www.runoob.com/w3cnote/webpack-tutorial.html
6、nodejs http://www.runoob.com/nodejs/nodejs-tutorial.html

框架知識:

1、ant https://ant.design/docs/react/introduce-cn
2、dva https://github.com/dvajs/dva
3、dva-docs https://github.com/dvajs/dva-docs/blob/master/v1/zh-cn/getting-started.md
4、dva+es6 https://github.com/dvajs/dva-knowledgemap

項目準備

代碼託管
https://coding.net/
接口文檔管理
http://www.xiaoyaoji.com.cn
項目原型
https://github.com/zuiidea/antd-admin

開發及構建

目錄結構

├── /mock/           # 數據mock的接口文件
├── /dist/           # 項目輸出目錄
├── /src/            # 項目源碼目錄
│ ├── /static/       # 靜態文件 image……
│ ├── /components/   # 項目組件
│ ├── /routes/       # 路由組件
│ ├── /models/       # 數據模型
│ ├── /services/     # 數據接口
│ ├── /utils/        # 工具函數
│ ├── route.js       # 路由配置
│ ├── index.js       # 入口文件
│ └── index.html     
├── package.json     # 項目信息
└── proxy.config.js  # 數據mock配置

快速開始
開發

進入目錄安裝依賴: npm i 或者 yarn install
編譯運行:npm run dev    # 使用mock攔截請求,數據存儲在localStroge裏;否則請求開發環境接口。
打開 http://localhost 或者 127.0.0.1

構建

npm run build  #將會生成dist目錄

注意事項
* 生產環境中,已有數據接口,請將src/utils/index.js第四行 require(‘./mock.js’)註釋
* 開發環境中,如再mock目錄新增文件,請在src/utils/mock.js第二行的mockData數組中添加
* 開發環境中,如需要調試開發環境接口,在mock中將api/xxx/xx/的前面加上off/
* 如需重寫antd樣式配置,請修改src/theme.js
* 項目配置文件在src/utils/config.js
* 如需重寫異步請求函數,請修改src/utils/request.js (關於爲什麼使用robe-ajax而不是fetch:在一個無服務器的環境中模擬數據請求,Mock不能攔截Fetch,只能攔截XHR,所以我選了一個類似jquery Ajax的庫robe-ajax)

那些年遇到的坑~

問題:手動操作更改組件狀態後,同跳由跳轉傳參或重新點擊菜單同路由,組件狀態無法自動初始化,state值不重置
解決方案:state裏添加resetFlag標識,組件裏添加reset()方法,根據resetFlag標識進行重置


本地環境配置nginx,與開發聯調

目的:前端本地開發環境聯調測試服務器上的後端,Cookie不能跨域問題

Mac系統

  1. 安裝Nginx:

brew install nginx

安裝目錄:/usr/local/Cellar/nginx/

配置文件路徑:/usr/local/etc/nginx

日誌位置:
/usr/local/var/log/nginx/access.log
/usr/local/var/log/nginx/error.log

  1. 查看Nginx配置文件:/usr/local/etc/nginx/
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8080;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    include /usr/local/etc/nginx/conf.d/*.conf;
}
  1. 在/usr/local/etc/nginx/conf.d/目錄下新建一個配置文件kdrp.conf:

觀察上面include的目錄,有的可能不是conf.d, 是servers目錄

server {
    listen 80;
    server_name localhost;
    charset     utf-8;
    client_max_body_size 75M;

    location ^~ /api/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://crm.shenxin99.com/api/;
    }

    location / {
        proxy_pass http://localhost:8000/;
    }
}

以/api/開頭的請求地址會轉發到測試服務器上 http://crm.shenxin99.com/api/
其他請求地址會轉發到前端開發環境:http://localhost:8000/ (你需先啓動前端服務)

  1. 測試Nginx配置文件是否正確:

    nginx -t

  2. 啓動或重啓Nginx服務:

nginx

nginx -s reload

6.瀏覽器中輸入http://127.0.0.1/ 訪問

Windows系統

  1. 下載nginx

  2. 在nginx安裝目錄的conf目錄下新建一個配置文件kdrp.conf:

worker_processes  1;
error_log  logs/error-debug.log info;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type   application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;
    server {
        listen 80;
        server_name localhost 127.0.0.1 ;
        charset     utf-8;
        client_max_body_size 75M;

        location ^~ /api/ {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://crm.shenxin99.com/;
        }

        location / {
            proxy_pass http://localhost:8000/;
        }
    }
}
  1. 啓動Nginx服務:

先進入nginx安裝目錄(或自己配置環境變量)

nginx -c conf\kdrp.conf
  1. 停止Nginx服務:
nginx -s stop 
或
taskkill /F /IM nginx.exe > nul 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章