美文网首页JavaScript 进阶营程序员WEB前端程序开发
构建一个React-redux应用(知乎日报篇)

构建一个React-redux应用(知乎日报篇)

作者: Haley_han | 来源:发表于2017-01-13 14:56 被阅读1113次

背景


本项目是采用 `React+redux` 实现的知乎日报的App,所有API均来自网络(若涉及侵权,请及时联系我删除)

运行


- 获取 `git clone https://github.com/Hancoson/react-redux-demo.git`

- 安装 `npm install(yarn)`

- 启动 `npm start`

- 构建 `npm build`

对应技术


- 底层技术 `React+redux+react-router`

- 编码规范 `ES6`

- 构建工具 `webpack`

- UI `Antd`

- API 采用Yahoo跨域访问代理

- 其他工具技术 `React-hot-load`,`babel`,`webpack-dev-server`等

技术实现


react

A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES

state & props

- `props`(属性)和`state`(状态)的改变都会触发`render`函数来更新界面;

- 属性(`props`)是由父组件传递给子组件的;

- 状态(`state`)是组件内部维护的数据,当状态发生变化的同时,组件也会进行更新。 当状态发生转换时会触发不同的钩子函数,从而让开发者有机会做出相应操作。

生命周期

//初始化阶段

getDefaultPropos      //只调用一次,实力之间共享引用

getInitialState      //初始化每个实例特有的状态

componentWillMount    //render之前最后一次修改状态的机会

render                //只能访问this.props和this.state,只有一个顶层组件,不允许修改状态和DOM输出

componentDidMount    //成功render并渲染完成真实DOM后触发,可以修改DOM

//运行中阶段

componentWillReceiveProps  //父组件修改属性触发,可以修改新属性,修改状态

shouldComponentUpdate      //返回false会阻止render调用

componentWillUpeate        //不能修改属性和状态

render                    //只能访问this.props和this.state,只有一个顶层组件,不允许修改状态和DOM输出

componentDidUpdate        //可以修改DOM

//销毁阶段

componentWillUnMount    //在删除组件之前进行清理操作,比如计时器和事件监听器。

组件化的开发思路

所谓组件,即封装起来的具有独立功能的UI部件

- React推荐以组件的方式去重新思考UI构成,将UI上每一个功能相对独立的模块定义成组件, 然后将小的组件通过组合或者嵌套的方式构成大的组件,最终完成整体UI的构建。

- 如果说MVC的思想让你做到视图-数据-控制器的分离,那么组件化的思考方式则是带来了UI功能模块之间的分离。

redux

先简单说一下 `redux` 和` react` 是怎么配合的。`react-redux` 提供了`connect`和`Provider`两个好基友,它们一个将组件与`redux`关联起来,一个将`store`传给组件。组件通过`dispatch`发出`action`,`store`根据`action`的`type`属性调用对应的`reducer`并传入`state`和这个`action`,`reducer`对`state`进行处理并返回一个新的`state`放入`store`,`connect`监听到`store`发生变化,调用`setState`更新组件,此时组件的`props`也就跟着变化。

核心代码

app入口文件


store

reducer


总结


因为整个项目组我是第一个用react+redux做项目的,遇到问题只能自己解决,如果不是在github上下载了别人的代码,我觉得自己是不可能按时完成任务的,它让我少走了很多弯路。写一个已经被写烂的todo demo和写一个完整的项目完全是两回事,所以我非常欣赏和感谢那些愿意分享自己代码的人,也会将自己的代码分享出来,希望对大家有帮助。

最后附上github地址https://github.com/Hancoson/react-redux-demo ,喜欢的麻烦帮我点个star,我会分享更多干货。

原文地址:http://www.vsoui.com/2017/01/13/build-a-react-redux-app/

相关文章

  • 构建一个React-redux应用(知乎日报篇)

    背景 本项目是采用 `React+redux` 实现的知乎日报的App,所有API均来自网络(若涉及侵权,请及时联...

  • 奇怪的bug:解决 vue-cli中 proxyTable 配置

    问题起源于最近打算用vue写个单页应用-知乎日报,因为知乎日报的api比较成熟,而且自己也是知乎日报的重度使用者。...

  • 知乎“读读日报”,内容搬运工的福利

    什么是“读读日报”? 读读日报是知乎最新推出的移动端应用。其功能用官方的话概括就是: 不仅能够看到老版知乎日报的全...

  • 日报知乎,一个第三方知乎日报客户端

    首先 日报知乎是一个基于Android平台的第三方知乎日报,界面UI参考自ios版的知乎日报。 知乎日报API来自...

  • 仿写知乎日报 - 侧边栏菜单 (Part 3)

    转自我自己的 blog 这一篇 blog 是专门介绍如何仿写知乎日报的侧边栏菜单,主要介绍如何构建 UI 以及一个...

  • 知乎日报

    一款全新的资讯类应用——知乎日报。知乎日报每天推荐几十条高质量的问题解答,内容涉及方方面面。 产品信息 名称:知乎...

  • 小程序资源汇总

    小程序资源汇总 知乎日报(感谢Rebecca Han) 感谢极速应用小程序商店

  • vue低仿知乎日报

    概述 一个基于vue的仿知乎日报的前端项目。 关于知乎日报: 知乎日报是一款拥有千万用户的资讯类客户端,每日提供来...

  • Flutter入门实战—高仿知乎日报

    Flutter版高仿知乎日报 高仿知乎日报,UI基本和Android端的知乎日报一致。新手小白的练习demo,代码...

  • 知乎日报

    为什么移动公司可以在⑥月份后利润分配低俗???下一次啊 : 这是真的!要和一个学校有关系XOFfer直白点-C...

网友评论

    本文标题:构建一个React-redux应用(知乎日报篇)

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