React开发简书总结-程序员宅基地

技术标签: react  javascript  

React 简书网开发

github地址

技术栈
what way
React 创建组件
Redux 管理数据
react-redux 方便使用 redux
redux-thunk 让store有能力接收函数,用来做异步数据获取与复杂逻辑
immutable.js 保证 redux 的 state 不被修改
react-router 路由管理
react-loadable 实现异步组件,而不是所有代码都打包在一起
styled-components 模块化 CSS
react-transition-group 动态改变 class 属性值实现 react 动画
运行本项目

注意:这里默认给您写的是cnpm哦,如果不支持请修改第三行为 npm install

git clone https://github.com/Wangdachui110/jianshu.git
cd jianshu
cnpm install
npm start
我做了哪些功能?

首页的样式与布局,没有做响应式
页面头部搜索栏的动画与推荐
页面头部:登陆与退出的跳转
页面头部:写文章的权限验证,没有登陆会跳到登陆页面
登陆页的简单布局。没有验证哈
文章详情的跳转,虽然点每一个跳过去都是同一篇文章,但发送的ajax请求不同
注: 所有的mock数据放在puclic/api

项目是如何拆分的?

按照页面进行拆分。 src/pages 目录下的每一个文件夹代表一个页面
每一个页面的文件夹下管理它自己的数据与状态 通过 combine-reducer ,可以将庞大的state分割到多个文件中,在每一个代表页面的文件夹中各自管理各自的数据,可以极大的降低合作成本,并让代码清晰
将通用组件或一个不属于某一个路由的组件如header部分放到src/common文件夹中,尽可能提高服用度
在src/App.js中管理路由
在src/store/reducer中合并所有的reducer

项目结构
│  App.js                         根组件
│  index.js                       项目入口
│  style.js                       注入到全局的样式, 重置默认样式
├─store   
|      index.js                   唯一的store
|      reducer.js                 合并各组件的reducer
|
├─common                          通用组件文件夹
│  ├─header                       头部组件,它独立于页面之外,却又较为复杂,所以单独抽出
│  │  │  index.js                 组件入口,布局与逻辑
│  │  │  style.js                 组件使用标签以及样式
│  │  │
│  │  └─stroe                     header区域所有的数据
│  │          actionCreators.js   统一管理action
│  │          constants.js        用常量替代所有的action的type值
│  │          index.js            导出actionCreators与reducer
│  │          reducer.js          根据不同的action修改state
│  │
│  └─tools                        存放所有的小组件
│      │  index.js                导出所有的工具组件
│      │
│      ├─components               放置通用组件
│      │  └─backTop               回到顶部组件
│      │          index.js        
│      │          style.js        
│      │
│      └─store                    这里打算用一个文件夹来管理所有通用组件的数据,↓
│              actionCreators.js  因为通用组件主要是样式,逻辑是少数
│              contants.js
│              index.js
│              reducer.js
│
├─pages                           所有的页面
│  │
│  ├─home                         主页
│  │  │  index.js                 主页入口
│  │  │  style.js                 主页样式
│  │  │
│  │  ├─components                首页被划分为下列组件
│  │  │      List.js              列表组件
│  │  │      Recommed.js          推荐组件
│  │  │      Topic.js             话题组件
│  │  │      Writer.js            作者组件
│  │  │
│  │  └─store
│  │          actionCreators.js   统一管理action
│  │          constains.js        用常量替代所有的action的type值
│  │          index
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44809439/article/details/110299833

智能推荐

Java中如何将List拆分为多个小list集合_java把list分成多个list-程序员宅基地

文章浏览阅读2w次,点赞11次,收藏19次。文章目录一、如何将List拆分为多个小list写在前面:我是「境里婆娑」。我还是从前那个少年,没有一丝丝改变,时间只不过是考验,种在心中信念丝毫未减,眼前这个少年,还是最初那张脸,面前再多艰险不退却。写博客的目的就是分享给大家一起学习交流,如果您对 Java感兴趣,可以关注我,我们一起学习前言:在平常写代码时候可能会遇到需要将一个大list拆分多个小list,进行一些业务处理。一、如何将List拆分为多个小list如何将List拆分多个小list,首先我们需要list.sublist这个方法_java把list分成多个list

SQL Server如何附加只有mdf的数据库文件(丢失ldf)_只复制了ndf 没复制ldf文件怎么附加-程序员宅基地

文章浏览阅读2.4k次。有时候SQL Server意外断电会导致SQL Server的ldf日志文件丢失或者损坏,这个时候你如果直接附加mdf文件到SQL Server会失败,这里提供一个方法可以还原只有mdf的数据库文件,这里我们假设你要还原的数据库文件是YourDB.mdf首先在SQL Server中创建一个同名的数据库,叫[YourDB]。 然后停止SQL Server的数据库引擎服务(通过配置管理器停止服务..._只复制了ndf 没复制ldf文件怎么附加

MTK modemlog分析_mtk modem 分析-程序员宅基地

文章浏览阅读5.6k次,点赞4次,收藏53次。Call流程无论是在CS还是ims域看掉话问题首先先分析是否校准以及写入IMEI号在 kernel-3.18及其以前的老平台中可以通过随机接入来分析DUT是否有校准,如果信号还算良好,但频繁随机接入失败。那么可能是没有校准或rf参数本身有问题。典型log如下1403508, 947548, 884529, 18:05:45:610 2018/02/27, MOD_UMAC, , TRACE..._mtk modem 分析

webpack Dev Server Invalid Options options should NOT have additional properties 解决办法-程序员宅基地

文章浏览阅读4.7w次,点赞4次,收藏4次。出现上面问题的原因是webpack.config.js中config.devServer 配置出现了问题const config = { ...}if(isDev) { config.devServer = { port: 8000, host: '0.0.0.0', overlay: { errors: true,..._webpack dev server invalid options

使用c++简单实现reactor模式_c++设计模式reactor-程序员宅基地

文章浏览阅读5.4k次。转载地址:http://blog.csdn.net/baidu20008/article/details/41378761事件驱动模型广泛地应用于高性能的web服务器中。而相对应的事件处理模式,最为典型的就是Reactor模式(中文可以称作“反应器” “反应堆”等等,各种叫法都不一样,估且就使用英文吧,叫它Reactor模式)和Proactor模式(中文也称“主动器” “前摄器”,同前者一样称_c++设计模式reactor

linux命令之筛选文件内容_linux过滤时间范围内的文件内容命令-程序员宅基地

文章浏览阅读1.4w次,点赞2次,收藏21次。linux命令之筛选文件内容(sed命令)   在linux系统中,可能有这样的需求,比如查看某个文件中含有某些字符的内容。比如,日志文件中,只要含有error 相关的。可以使用如下命令:1、根据字符串内容筛选sed -n "/error/p" logs.log   注意以上/error/p 中的p 必须要带着,后边的logs.log 是一个文件,输入上边的命令,则会打印出只含有err..._linux过滤时间范围内的文件内容命令

随便推点

Linux数据文件自动迁移,linux下增加磁盘改变指定文件路径分区挂载点和迁移数据...-程序员宅基地

文章浏览阅读243次。Centos7 系统上原有目录/data 挂载根目录下,空间有点小,我们需要把/data目录挂载到另一个磁盘,同时把数据迁移。1.查看分区情况fdisk -l2.查看路径对应分区情况df -l3.查看分区文件格式df -T -H4.给指定磁盘分区fdisk /dev/vdaCommand (m for help) nprimary partition (1-4) pPartition number..._linux 移动文件会改变文件的挂载点吗

Objective-C_oc语言输出程序-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏3次。OC介绍文章目录前言 一、OC是什么? 二、第一段OC代码 三、OC基本介绍前言Objective-C是一种面向对象的C语言,本质还是C语言,兼容C和C++​​​​​​​ 简称:OC提示:以下是本篇文章正文内容,下面案例可供参考一、OC是什么?Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用..._oc语言输出程序

autossh不生效_背景中的autossh不起作用-程序员宅基地

文章浏览阅读836次。我已经通过autossh建立了一个隧道.这有效:autossh -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]我想在后台运行autossh.使用-f选项似乎很容易.但是,这不起作用:autossh -f -M 33201 -N -i myIdFile -R 33101:localhost:22 autossh@myh..._autossh -r 访问不了

hadoop学习--hbase0.96整合到hadoop2.3.0安装过程_hbase-common-2.2.4.jar-程序员宅基地

文章浏览阅读744次。问题导读1.hbase安装在什么情况下会发生,启动之后自动宕机2.hbase安装目录该如何选择?3.hbase目录如果出现权限不一致,会发生什么情况?4.如果只有一个节点有临时目录会出现什么情况?_hbase-common-2.2.4.jar

gmssl生成的国密证书解析_gmssl 生成base64-程序员宅基地

文章浏览阅读3.1k次。国密认证遇到的一些问题记录:gmssl生成的key文件解析:gmssl生成的SM2证书文件解析:_gmssl 生成base64

深大uooc学术道德与学术规范教育第七章_关于伪造科研数据下列说法错误的是-程序员宅基地

文章浏览阅读7.8k次。一、单选题 (共 90.00 分)1.关于学术造假,下列说法是不正确的是( )A.指伪造、修改研究数据和资料等学术腐败行为B.通常是由研究者学风浮躁和急功近利所致C.为了令理论假设成立,加工和筛选数据并不是造假D.是一种违背学术道德和科学精神的表现满分:15.00 分得分:15.00 分你的答案:C正确答案:C教师评语:暂无2.资料分析中的失范行为往往也被称为学术造假,下列情况不属于学术造假的是( )A.筛选数据B.整理数据C.加工数据D.伪造数据满_关于伪造科研数据下列说法错误的是

推荐文章

热门文章

相关标签