V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Johnsen
V2EX  ›  前端开发

🍿 基于 react + react-router + redux 构建的移动端微应用

  •  
  •   Johnsen · 2017-08-17 09:48:08 +08:00 · 2000 次点击
    这是一个创建于 2656 天前的主题,其中的信息可能已经有所发展或是发生改变。

    react-mobile-starter

    基于 react + redux + react-router 构建的移动端单页微应用,适合于 react、redux、react-router 核心概念的理解与掌握。

    前言

    这个项目是介于 vue-mobile-starter(vue 版本) 之后并且完全仿照 vue-mobile-starter 功能、设计的 react 版本。这个版本里引进了 dva 作为开发脚手架,跟 vue-cli new XXX 出来是同一概念。使用 dva 作为开发框架主要原因之一是我司的 react 项目 大部分由 dva 框架 搭建,而且全部都经受住了线上压力的考验,有兴趣的同学可以深入研究,可以带入到公司项目的生产中去。以下是 dva 的官方说法:

    经过一段时间的自学或培训,大家应该都能理解 redux 的概念,并认可这种数据流的控制可以让应用更可控,以及让逻辑更清晰。

    但随之而来通常会有这样的疑问:概念太多,并且 reducer, saga, action 都是分离的(分文件)。

    这带来的问题是:

    编辑成本高,需要在 reducer, saga, action 之间来回切换

    不便于组织业务模型 (或者叫 domain model) 。比如我们写了一个 userlist 之后,要写一个 productlist,需要复制很多文件。

    还有一些其他的:

    saga 书写太复杂,每监听一个 action 都需要走 fork -> watcher -> worker 的流程

    entry 书写麻烦

    ...

    而 dva 正是用于解决这些问题。

    本项目虽说是一个十来个页面的小型项目,不过却涉及到 react 模块的全局和局部应用配置、第三方 UI 组件的使用、react-router、react-redux 的合理化配置和使用,非常适合于新手对 react 开发核心理念的掌握。

    同一个项目用两种框架做最大的感触就是能明显感觉到两个框架之间的差异性,当你切身的体会了两者的差异性后,自然能够在不同的应用场景下选择合适的开发框架📌

    觉得此项目对您有帮助,可以点右上角 star 支持一下😊

    欢迎提 issue

    开源技术支持

    1. react:一个用于构建用户界面的 JAVASCRIPT 库
    2. react-routerreact 官方路由库.
    3. react-reduxreact 状态管理框架.
    4. dva支付宝 开发的基于 react + redux + react-router 的轻型框架
    5. roadhog:与 dva 搭配的命令行工具,包含 webpack,自带数据 mock 功能
    6. jsonplaceholder:一个简单的在线模拟 REST API 服务器
    7. axios:基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用
    8. Material-UIGoogle 使用 React 构建的设计 UI 组件

    如何开发

    # 克隆本仓库
    git clone https://github.com/JohnsenZhou/react-mobile-starter.git
    
    # 进入仓库目录
    cd react-mobile-starter
    
    # 安装依赖
    npm install
    
    # 启动项目,本地浏览地址 => localhost:8080
    npm start
    
    # 打包压缩
    npm run build
    
    

    Dva 框架

    以下能帮你更好地理解和使用 dva

    1. 理解 dva8 个概念 ,以及他们是如何串起来的
    2. 掌握 dva所有 API
    3. 查看 dva 知识地图 ,包含 ES6, React, dva 等所有基础知识
    4. 查看 **更多 FAQ**,看看别人通常会遇到什么问题
    5. 如果你基于 dva-cli 创建项目,最好了解他的 配置方式

    dva 框架中对数据流向的处理(见下图)

    目录结构

    .
    ├── README.md            // README 文件
    ├── public               // 静态资源及 index 入口文件
    ├── node_modules         
    ├── package.json         // npm 配置文件
    ├── .roadhogrc           // roadhog 配置文件
    ├── .roadhogrc.mock      // roadhog Mock 数据配置文件
    ├── src                  // 项目开发目录
    │   ├── index.js         // 项目入口文件
    │   ├── assets           // 资源文件夹
    │   ├── components       // react 通用组件
    │   ├── router.js        // react-router 配置文件
    │   ├── router           // router 对应页面
    │   ├── services         // 接口文件
    │   ├── utils            // js 通用工具组件
    │   └── models           // redux 数据处理文件
    └── LICENSE              // 证书
    
    

    效果演示

    在线浏览 Demo 请戳这里

    1. 项目通过阿里云部署
    2. 想了解详细部署过程的同学请浏览 此文档 同时请切换 release 分支

    手机浏览请扫描下方二维码

    在线浏览

    License

    MIT license.

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1271 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:33 · PVG 01:33 · LAX 09:33 · JFK 12:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.