本篇文章是經過頁面訪問順序來進行介紹的
項目git地址:https://gitee.com/xikeda/Fram...ios
一、在這個文件夾中咱們一般作一些默認的字體設置,以及IE瀏覽器兼容性的處理。git
字體處理: ``` <style> @font-face { font-family: myFirstFont; src: url('../static/fonts/fontawesome-webfont.ttf'), url('../static/fonts/fontawesome-webfont.eot'), url('../static/fonts/fontawesome-webfont.svg'), } body{ font-family:myFirstFont; margin: 0; } </style> ```
IE瀏覽器兼容性設置:web
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
初始化一些默認配置,和調用model中的global.js獲取全局共有的數據。chrome
進入路由組件,在這個組件中咱們須要加載頁面的框架也就是layout組件,同時進行頁面初次打開時所訪問頁面。
還有進行權限的配置與攔截。axios
整個頁面的框架部分,主要是作一下工做:api
在這個文件夾中存放着兩個文件,一個是menu.js
一個是router.js
1.menu.js瀏覽器
在這個文件中,咱們發現咱們的菜單是寫死的,可是在正式的項目,咱們的菜單都是請 求後臺來獲取的,因此這裏須要修改。
2.router.js
這個地方是Antd-pro中最爲核心的一部分,若是把Antd-pro比做一輛汽車的話,那個router.js就是它的引擎,它鏈接着:Router、Model、Component,經過方法getRouterData
把他們綁定到一塊兒app
// '/路由Router':{ // component: dynamicWrapper(app, [Model], () => import(組件Component)), //} '/': { component: dynamicWrapper(app, ['user', 'login'], () => import('../layouts/BasicLayout')), },
若是咱們要添加一個頁面,就須要在這個地方進行註冊框架
業務頁面入口和經常使用模板
注意:一個業務對應一個文件
在寫每個業務時,須要對這個這個業務的流程與整個構成有一個深刻的瞭解,由於咱們須要把一些功能相近的模塊提取出來寫一個共有的組件。
而且在寫的時候,儘可能把業務拆分紅多個板塊,而後建立不一樣文件,最後再在一個文件去,拼湊這些細化的功能組件。
舉例:(簡單的CRWD組件)
1.模塊:頂部的搜索框、中部的操做按鈕、底部表格、新增或者編輯所須要的Form表單
2.搜索框組件:SearchForm.js;操做組件:HandleList.js;表格組件:Table.js;表單組件:Form.js;async
業務通用組件
注意:
1. 公用組件中絕對不能涉及到數據,全部的數據來源均來自調用這個通用組件的組件
2. 斷定每個傳入的數據的格式,設置默認值,防止傳入空的或者格式不匹配的數據
3. 備註好每個函數的做用
在寫通用組件時,我須要的是足夠細化它的功能,而且儘量的去考慮到多的狀況。
dva model模塊
在這個模塊去編寫須要跨多個組件的數據傳遞,而且請求後臺數據。當我向後臺發送請求時,在返回請求的的數據中,須要斷定data中的code,若是code爲0則爲請求成功,若是不爲0,咱們須要拋出這個這個錯誤,告知用戶。
注意:
一個業務組件一個對應一個model對應一個後臺服務
後臺接口服務
這個模塊對應這後臺接口服務。
// 接口名稱 export async function fakeGetcaptcha(params){ // 共有API前綴 私有API接口 return request(createTheURL(Config.API.LOGIN, 'getcaptcha'), { method: 'GET', // 請求方法 body: params, //向後臺發送的數據 }); }
注意
1.私有接口必須爲全小寫
2.一般狀況下一個業務對應一個services
向後臺發送請求
在這個裏面一共有4個文件
1.request.js
選擇調用的後臺請求模式,axios或者fetch,固定參數API.REQUEST_METHOD
能夠在./../../config/api
中進行配置
2.request.axios.js和request.fetch.js,這兩種不一樣寫法,可是具有相同功能的請求。
3.checkStatus.js檢查請求完成後,返回的data中的code是否存在錯誤,若是有則直接拋出。
咱們在處理後臺請求時還會須要幾個文件: