因爲這次疫情影響,只能呆在家中,最近在掘金看見好多疫情h5項目,例如山月大佬的《武漢肺炎疫情實時動態省市地圖開發》,恰好最近有點時間,就用本身以前搭建好的的react移動端框架,快速搭建開發了一套h5頁面,分享給你們。css
項目集成了react全家桶,集成移動端開發適配,例如1px問題,rem適配,px轉rem,圖片根據dpr加載相應像素的圖片;支持組件異步加載等,拿來便可開發使用。腳手架實現完整功能以下:react
//經過高階組件異步加載組件
export default function asyncComponent({loader}){
class AsyncComponent extends Component {
constructor(props){
super(props);
this.state = {
component: null
}
}
componentDidMount() {
//執行外部promise
loader().then(res=>{
this.setState({
component: res.default
})
})
}
render(){
const C = this.state.component
return C ? <C {...this.props}/> : null;
}
}
return AsyncComponent;
}
複製代碼
if (module.hot) {
module.hot.accept('./reducer/main', ()=>{
const nextRootReducer = require('./reducer/main.js').default;
store.replaceReducer(nextRootReducer)
});
}
複製代碼
//多入口
function getEntry() {
let entryMap = {};
fs.readdirSync(pageDir).forEach((pathname) => {
let fullPathName = path.resolve(pageDir, pathname);
let stat = fs.statSync(fullPathName);
let fileName = path.resolve(fullPathName, mainFile);
//判斷是文件而且入口文件存在
if (stat.isDirectory() && fs.existsSync(fileName)) {
entryMap[pathname] = fileName;
}
});
return entryMap;
}
複製代碼
# 安裝依賴
npm install
# 開發
npm run dev
# 打包發版
npm run deploy
複製代碼
本身年前又寫了一個react組件庫deer-ui,項目包括腳手架的搭建,stylelint,eslint,commitlint以及自動打包發版,組件實現了按需加載,主題定製等功能。基本和react無縫銜接,前期初版的基礎組件已經開發完畢,歡迎拍磚建議...webpack
組件庫代碼地址ios
組件庫預覽地址git