美文网首页
「React」开发的框架(在开源框架基础上增加哪些部分?)

「React」开发的框架(在开源框架基础上增加哪些部分?)

作者: BertFu | 来源:发表于2017-03-12 20:42 被阅读161次

    Blue:

    1.增加了api中对ajax的封装,在没有后台数据传输的时候可以写假数据,实现了前后台分离。
    2.增加了组件文件,可重复使用。
    3.增加了store文件,type文件连接action和reducers路由,reduce文件连接view和reducers路由,还有处理action中promise的中间件。
    4.增加了state数据处理,把每个独立页面的数据集中放在对应的state里面,方便查询和管理数据。

    XuYang:

    这个问题其实需要对整个框架的理解比较清楚才能回答。首先,项目中哪部分是react原有的流程,哪部分是redux规定的流程,哪部分是antd规定的流程,剩下的才是增加的部分。
    首先说说react,项目中其实只有view和components再就是entries部分才是react的部分。用于render页面,定义路由,改变state来改变页面当前的展示。
    再来说说redux,redux包括三个重要的部分,action,state和reducers。处理页面逻辑,和管理state。
    再说说antd,antd只是页面ui库。使用的时候引用。

    除了以上的部分,可以说都是增加的部分。
    首先,在entries的index中,可以看到const store = configureStore();这样一句代码。这里将reducers,state,middleware 一起创建。Reducers.js中将所有用到的reducers合并。
    并且在promiseMiddleware中,对请求远程方法的参数和type进行了封装和限制。添加了请求响应的状态,并且在type中添加了'PENDING', 'SUCCESS', 'ERROR' 这些状态。所以在reducers的响应操作中,我们需要在自己定义的type后面添加这些来进行处理。
    在utils可以看到增加了一些常规操作,封装了一些工具函数。并且对Promise不存在的情况进行了创建一个Promise的操作。
    在reducers中,我们可以看到都调用一个createReducer方法,原生的reducers利用switch case来判断type的操作,构建state。在util 的index.js中,定义了这个方法,可以直接通过type来得到对应的reducers的操作。并且封装了params参数和payload参数。所以我们在响应操作的时候可以看到有data参数和params参数。
    在api的中,封装了ajax的数据请求操作。
    在项目中使用的中间件,包括redux-thunk,redux-logger.处理异步function或者
    Action。Logger打印日志,可以在控制台中看到每一次的state的变化。和state经过的处理。
    多说一句,为什么要使用ES6。我觉得ES6/7相对于ES55的语法其实有很大的改进,新增了很多很实用的功能。使用起来更加方便。更符合面向对象的思想。相对于以前ES5的各种操作,其实更加合理。所以用ES6 很有必要。对我们学习ES6也很有帮助。

    LiQunBin:

    开发的框架(在开源框架基础上增加哪些部分?)
    1.每个页面的初值全存在一个reducers的一个文件里面而没有在单独的组件中去设置值,方便了对数据对象的管理和传递
    2.以继承的方式去创建组件
    3.封装了对数据格式处理的方法

    Jack:

    react+redux
    react:React是一个View层的前端库,它的理念是是使用组件定义界面(界面都写在render里)
    redux:
    1.是什么:用来替代fb推荐的flux框架的另一种状态管理库。(同类的框架还有 Reflux、Flummox)。在我看来redux就是flux plus plus。(类似于c++ 相对于 c)。redux将flux的每一个component拥有一个自己的store变成了全部component共用一个store。(虽然两者的store不是同一个事物,但是我们在使用的时候可以忽略这一点,因为他们都是存储改变view的state的地方)。
    2.为什么用它:解决了应用状态存储以及变更的问题。react负责貌美如花,redux负责让react每时每刻都与众不同。因为View层距离state十万八千里,前者是直接拿不到后者的,为了能够改变view中的内容。(正常的流程:view—>actions—>store—>view)
    3.提供了什么:subscribe(监听回调,基本没用过,看了相关文档感觉用不上)、dispatch(发送action给store)、getState(获取store这个对象)和replaceReducer(没用过)。
    中间件:

    applyMiddleware来自Redux可以包装 store 的 dispatch()

    thunk作用使action创建函数可以返回一个function代替一个action对象

    3.react-redux:负责绑定(binding)react和redux这两个框架的模块
    Provider: 一个react-redux提供的组件,用来告知组件们自己的state存在哪里
    connect:模块提供的用来将需要用到的外部数据与view进行连接的函数
    mapStateToProps:遍历state,并转换成props,通过connect与view绑定
    mapDispatchToProps:遍历dispatch,并转换成props,通过connect与view绑定

    Bert:

    正常情况下前端需要做哪些工作?
    1、请求
    2、页面功能
    3、代码编译

    这套开发框架又做了什么事情呢?
    1、结合了哪些开源框架?
    可以在package.json中看到该脚手架依赖的开源组件,组要的有:Redux、Antd相关、Webpack、superagent

    2、脚手架在这些基础上做了哪些事情?

    基本信息查阅:React+redux+webpack 项目构建:初具规模

    • api/api.js:在superagent的基础功上增加分装了一层,处理Ajax请求
    • api/service.js:基于Promise做模拟数据操作
    • store/middlewares/:中间件
      • afterApiMiddleware:基于Redux做了一层过滤器
      • promiseMiddleware:基于Redux对Ajax请求做了- - 判断,等待、成功、失败
    • store/configureStore:所有中间件由该文件做结合
    • store/types:统一Action中的type规范
    • util/index
      • function createReducer:对reducer做处理,在 React+redux+webpack 项目构建:初具规模 文章中有描述

    相关文章

      网友评论

          本文标题:「React」开发的框架(在开源框架基础上增加哪些部分?)

          本文链接:https://www.haomeiwen.com/subject/efrxnttx.html