# react-dva-spa **Repository Path**: xharry/react-dva-spa ## Basic Information - **Project Name**: react-dva-spa - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-06-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # react-dva-spa 一个使用dva和react的spa框架 ## 为什么使用react和dva 为什么使用react: react是一直以来目睹直播使用的前端库, 相对于angular来说,它比较简单,相对于vue来说,目前许多业务都是用 react来写的,对于旧业务的迁移重构来说更为方便。 为什么使用dva: dva是对redux, redux-saga, (react-router)的简单封装。 其中redux-saga是redux的一个中间件, 是对复杂的异步流程的一种处理方式。 dva选用了redux和redux-saga封装了一个类似于elm的数据流程, 使用model的形式 来组织数据的整个流程, 这种方式在vuex中已经应用很久了,相对于单纯的redux需要写 大量的reducer,container等样板代码,并且需要理解大量的概念来说,简化了数据流的 复杂性。并且dva经过将近2年的开源,api和代码应用已经稳定,维护也比较活跃,所以就 选用了dva。 ## 目录结构 `/public`目录存放不经常改变的静态文件,如网站的favicon等等 `/public/index.hbs`是html模板 `src`是主要的源代码目录。 `src/assets`存放静态文件,如图片等。 `src/models`存放dva的数据流model `src/pages`存放页面级组件。 `src/components`存放组件 `src/services`存放与业务相关的公共类库,如api请求等。 `src/utils`存放与业务无关的公共类库,如request,单纯的ajax库 `src/layouts`存放页面layout文件 `app.js`是入口文件 `router.js`是路由配置,可以在里面的`routerConfig`变量中配置route/model/page-component的对应关系。 ## 最后欢迎在issue和merge request提各种意见与建议