最近需要接手別人c#那邊組的一個項目新增頁面,但他們的是React的框架,作為一名後端,沒接觸過,一臉懵逼。。。。。。 說哈我的處理思路: 一、先用相應的程式打開該項目的源碼。如:react用vscode打開 二、先找到了頁面,查看頁面結構 這是我後面加的頁面,可以看出來,less類似css樣式 j ...
最近需要接手別人c#那邊組的一個項目新增頁面,但他們的是React的框架,作為一名後端,沒接觸過,一臉懵逼。。。。。。
說哈我的處理思路:
一、先用相應的程式打開該項目的源碼。如:react用vscode打開
二、先找到了頁面,查看頁面結構
這是我後面加的頁面,可以看出來,less類似css樣式
js頁面內容:
當組件實例被創建並插入 DOM 中時,其生命周期調用順序如下:
-
constructor()
: 在 React 組件掛載之前,會調用它的構造函數。getDerivedStateFromProps()
: 在調用 render 方法之前調用,並且在初始掛載及後續更新時都會被調用。render()
: render() 方法是 class 組件中唯一必須實現的方法。componentDidMount()
: 在組件掛載後(插入 DOM 樹中)立即調用。
render() 方法是 class 組件中唯一必須實現的方法,其他方法可以根據自己的需要來實現。
三、然後通過調後臺介面,找到了models/app.js
發現裡面有定義個對象,export default命令用於指定模塊的預設輸出。
語法解析:
namespace model 的命名空間,同時也是他在全局 state 上的屬性,只能用字元串,不支持通過 . 的方式創建多層命名空間。
state 是初始值,優先順序低於傳給 dva() 的 opts.initialState(index.js文件中定義)。
reducers 用於處理同步操作,唯一可以修改 state 的地方。由 action 觸發。格式為 (state, action) => newState 或 [(state, action) => newState, enhancer]。
effects 如果yield call的是一個Promise對象,那隻有在Promise返回的是resolve方法的情況下,下麵跟著的yield put及後面的代碼才會執行,若返回了rejector則後面的代碼則全部停止執行。
這兒才是實際調用後端介面的觸發點。