公司專案
、readme
、ow-dashboard
本篇以 user login 為例。 |
---|
複製整個 src 架構和 .env
, .env.example
, .gitignore
檔案後,清除 src 架構裡的 apis, assets, Containers, routes, Sagas, Stores,執行 npm start
,ok 再進行開發。
檔案名稱 | 回傳 |
---|---|
RouterPage.js (已登入) | return(<HomeLayout>...</HomeLayout>) |
UnRouterPage.js (未登入) | return(<EmptyLayout>...</EmptyLayout>) |
依照 react-router-dom 原理,寫HashRouter。先判斷路徑、渲染指定的畫面。若沒有指定路徑,則依 react-router-dom 原理,將根目錄導到想要的路徑。
在路徑宣告裡,會提到component={LoginScreen}
,指的是當使用者路徑為某網域/login
時,會在畫面裡先渲染出名為 LoginScreen 的元件(Components),而它包在名為 LoginScreen 的容器(Containers)。
LoginMiddleView
和 置右的LoginView
。<Form>
這個 tag,在裡面定義使用者填寫完成時 要做的 function,此 function 是將使用者輸入的值指定給 Containers/LoginScreen.js 的 handleLogin function 回傳的值。<FormInput>
這個 tag,做兩個輸入框給使用者填寫帳號與密碼。因為有在登入頁的 <Form>
tag 中,寫 onFinish={value => handleLogin(value)}
,所以會把兩個輸入框的值帶到處理階段。
UserSaga.js
。並在該檔案裡,再細分很多 function,如 login, getUserInfo …等。檔案名稱 | 動作用意 | api code |
---|---|---|
Sagas/UserSaga.js |
呼叫 | User.login() |
apis/User.js |
回傳 | login: () => '/api/auth' |
順序 | 檔案 | 檔案主用意 |
---|---|---|
1 | InitialState.js |
定義相關值的預設型態 |
2 | Action.js |
將值寫入 |
3 | Reducer.js |
依值是否需要多加處理而分兩種 |
InitialState.js
:定義相關值的預設型態。Action.js
:將值寫入。Reducer.js
:依值是否需要多加處理而分兩種情形。