當前位置:成語大全網 - 書法字典 - 從0開始搭建react+antd+typescript+umi hooks+mobx的前端框架。

從0開始搭建react+antd+typescript+umi hooks+mobx的前端框架。

因為現在公司的主要技術棧是React,所以我也想搭建壹個很好的React前端框架,方便在工作中使用。該框架還在打包過程中進行了優化,如多線程、解包、緩存等,以提高打包速度和質量。使用的主要庫包括:

要使用TypeScript模板創建react-app,建議使用yarn。接下來我主要以紗線為例。

然後在項目根目錄下創建壹個craco.config.js來修改默認配置。按需加載和定制主題

只是重新包裝壹下。所有的主題都在這裏配置。

這裏用React-router進行路由,同時也根據用戶角色做權限處理;只有當角色與路由允許的角色壹致時,才能訪問和顯示。

在新路由器下創建壹個新的indext.tsx來呈現頁面。

介紹Router/index.tsx

創建hasPermission.ts,如果頁面角色包含用戶的角色則返回true,渲染菜單和子頁時根據該值渲染頁面。

比如主頁,渲染子頁面的邏輯:

子頁面1下的頁面1無法在此顯示和訪問。如果直接輸入路線,也會訪問頁面。因為page1允許的角色是用戶,而我們的角色是管理員,所以不能顯示。

UseImmer解決了ReactHooks中賦值的性能問題,可以單獨更新壹個對象的壹個屬性。

上面的賦值方法也可以壹起寫,效果是壹樣的:

海鉤子是壹個React鉤子庫,致力於提供常用和高質量的鉤子。有很多鉤子組件,比如上面使用的usePersistFn。它的作用:在某些場景下,妳可能需要用useCallback來記憶壹個回調,但是內部函數必須頻繁重新創建,記憶效果不是很好,導致子組件的重復渲染。對於超復雜的子組件,重新渲染會影響性能。使用usePersistFn,可以保證函數地址永遠不會改變。海鉤子還是很強大的,還有很多強大的API。可以去官方文檔看壓力-web pack-plugin Terser-web pack-plugin。

同時打開袋子。

DevServer,壹個用於開發環境的域名代理。

為了加快打包速度,也可以考慮刪除antd-icons,單獨去iconfont網站,根據需要進行介紹。不然要花很多時間打包會員費。

dotenv-cli簡介

添加兩個開發環境配置文件:env.development和env.production

然後修改package.json中的啟動腳本:

現在,紗線開始或紗線形成將根據環境配置進行處理。

還有壹些細節需要調整,我們會盡力讓這個框架更加完善。

Github地址:/benzic/react-typescript-umi hooks-mobx

歡迎明星並發表評論。