1. |-----------------------------------------|
  2. | |
  3. | React & Redux |
  4. | |
  5. |-----------------------------------------|
  1. Project
  2. |
  3. |-- node_modules
  4. | |
  5. | |-- react
  6. | |
  7. | |-- react-dom
  8. | |
  9. | |-- react-router
  10. | |
  11. | |-- react-redux => redux本身只能处理同步的Action
  12. | |
  13. | |-- react-thunk => 在我们没有加上thunk这个中间件之前,
  14. | | storedispatch方法只能传入一个action对象,
  15. | | thunk的作用就是能够让我们可以将一个function方法传入diptach
  16. | | 这在做异步的时候非常有用。
  17. | |
  18. | |-- redux-promise => redux-promise支持将promise对象作为参数传入dispatch中。
  19. | |
  20. | |-- prop-types => React.PropTypes React v15.5 起已弃用。
  21. | | 请使用 prop-types 库代替。调用方法:
  22. | | import PropTypes from 'prop-types'
  23. | |
  24. | |-- @types/react => implements method in React.Component,解决
  25. | | Cannot resolve symbol 'Component' 的问题
  26. | |
  27. | |-- postcss-loader => PostCSS,一款通过 JS 插件转换 styles 样式的工具。
  28. | | 根目录下新建postcss.config.js文件。配置如下:
  29. | | module.exports = {
  30. | | parser: 'sugarss',
  31. | | plugins: {
  32. | | 'postcss-import': {},
  33. | | 'postcss-cssnext': {},
  34. | | 'cssnano': {}
  35. | | }
  36. | | }
  37. | | webpack配置:{
  38. | | test: /\.css$/,
  39. | | use: ['style-loader', 'css-loader','postcss-loader']
  40. | | }
  41. | |
  42. | |-- Autoprefixer => PostCSS插件,一个后处理程序。解析CSS并添加浏览器前缀。
  43. | | postcss.config.js文件中配置如下:
  44. | | module.exports = {
  45. | | plugins: [
  46. | | require('autoprefixer')({})
  47. | | ]
  48. | | }
  49. | |
  50. | |-- extract-text-webpack-plugin => css单独打包成一个文件。
  51. | | 它会将所有的入口 chunk(entry chunks)中引用的 *.css
  52. | | 移动到独立分离的 CSS 文件。因此,你的样式将不再内嵌到JS bundle中,
  53. | | 而是会放到一个单独的 CSS 文件(即 styles.css)当中。
  54. | | 如果你的样式文件大小较大,这会做更快提前加载,因为 CSS bundle
  55. | | 会跟 JS bundle 并行加载。
  56. | |
  57. | |-- optimize-css-assets-webpack-plugin => 压缩抽离后的css代码,
  58. | | plugins: [new OptimizeCssAssetsPlugin()]
  59. | |
  60. | |-- html-webpack-plugin => 该插件将为您生成一个HTML5文件,
  61. | | 其中包括使用script标签的body中的所有webpack包。
  62. | |
  63. | |-- copy-webpack-plugin => webpack中拷贝文件和文件夹。例如:
  64. | | new CopyWebpackPlugin([
  65. | | {from: "./src/static/images", to: 'images/'}
  66. | | ])
  67. | | 作用就是将 ./src/static/images
  68. | | 目录下的图片拷到编译目录到 images 文件夹下面
  69. | |
  70. | |-- rimraf => 编译前清空dist目录。package.json配置:
  71. | | "scripts": {"build": "rimraf dist && ..."}
  72. | |
  73. | |-- OpenBrowserPlugin => webpack编译后自动打开浏览器
  74. | |
  75. | |-- axios => 一个基于 promise HTTP 库,可以用在浏览器和 node.js
  76. | |
  77. | |-- babel-eslint => 一个Babel parser的包装器,这个包装器使得Babel parser可以和ESLint协调工作
  78. | | .eslintrc.js中配置:"parser": "babel-eslint",
  79. | | "parserOptions": {
  80. | | "sourceType": "module",
  81. | | "allowImportExportEverywhere": false,
  82. | | "codeFrame": false
  83. | | }
  84. | |
  85. | |-- webpack
  86. | |
  87. | |-- webpack-dev-middleware
  88. | |
  89. | |-- webpack-hot-middleware
  90. |
  91. |-- dist => 打包输出文件目录
  92. |
  93. |-- src
  94. | |
  95. | |-- actions => Action是把数据从应用传到 store 的有效载荷。
  96. | | 它是 store 数据的唯一来源,一般通过
  97. | | store.dispatch() action 传到 store
  98. | |
  99. | |-- reducers => Action只是描述了有事情发生了这一事实,
  100. | | 并没有指明应用如何更新 state
  101. | | reducer 用来做更新state这个动作。
  102. | |
  103. | |-- store => 1.维持应用的state
  104. | | 2.提供 getState() 方法获取 state
  105. | | 3.提供 dispatch(action) 方法更新state
  106. | | 4.通过 subscribe(listener) 注册监听器;
  107. | | 5.通过 subscribe(listener) 返回的函数注销监听器。
  108. | |
  109.  | |-- components => 展示型组件目录
  110. | |
  111. | |-- containers => 容器型组件目录
  112. | |
  113. | |-- config => 配置actionType、接口
  114. | |
  115. | |-- library => 插件库
  116. | |
  117. | |-- service => 服务配置
  118. | |
  119. | |-- static => 静态文件目录
  120. | |
  121. | |-- main.js => 入口文件
  122. |
  123. |-- webpack => webpack配置目录
  124. |
  125. |-- .babelrc => Bable的配置文件,用来设置转码规则和插件。
  126. | Babel是一个广泛使用的ES6转码器,
  127. | 可以将ES6代码转为ES5代码。
  128. |
  129. |-- .gitignore => git上传忽略特殊文件配置
  130. |
  131. |-- index.html
  132. |
  133. |-- README.md
  134. |
  135. |-- package.json => 定义了这个项目所需要的各种模块,以及项目的配置信息。
  136. |
  137. |-- package-lock.json => npm5.0后新增。记录了整个 node_modules
  138. | 文件夹的树状结构,当重新安装模块的时候,
  139. | 速度加快。但是,生成pack-lock.json后,
  140. | 重复执行npm install时将会以其记录的版本来安装。
  141. | 这时如果手动修改 package.json 中的版本,
  142. | 重新安装也不会生效,只能手动执行npm install
  143. | 命令指定依赖版本来进行修改。
  144. |
  145. |
  146. |-- yarn.lock => yarn.lcok文件是自动产生的,
  147. | package-lock.json的功能一样,
  148. | 只不过yarn可以做到手动更改package.json后,
  149. | 重新安装并更新lockfile

一个 React & Redux的目录树的更多相关文章

  1. 我的第一个 react redux demo

    最近学习react redux,先前看过了几本书和一些博客之类的,感觉还不错,比如<深入浅出react和redux>,<React全栈++Redux+Flux+webpack+Bab ...

  2. Immutable.js 以及在 react+redux 项目中的实践

    来自一位美团大牛的分享,相信可以帮助到你. 原文链接:https://juejin.im/post/5948985ea0bb9f006bed7472?utm_source=tuicool&ut ...

  3. React+Redux实现追书神器网页版

    引言 由于现在做的react-native项目没有使用到redux等框架,写了一段时间想深入学习react,有个想法想做个demo练手下,那时候其实还没想好要做哪一个类型的,也看了些动漫的,小说阅读, ...

  4. react案例->新闻移动客户端--(react+redux+es6+webpack+es6的spa应用)

    今天分享一个react应用,应在第一篇作品中说要做一个react+redux+xxx的应用.已经做完一部分,拿出来分享.github地址为:点我就可以咯~ 这里实现了一个新闻移动站的spa.本来想写p ...

  5. react+redux教程(二)redux的单一状态树完全替代了react的状态机?

    上篇react+redux教程,我们讲解了官方计数器的代码实现,react+redux教程(一).我们发现我们没有用到react组件本身的state,而是通过props来导入数据和操作的. 我们知道r ...

  6. react,react-router,redux+react-redux 构建一个React Demo

    创建初始化应用 加速我们的npm. npm install -g cnpm --registry=https://registry.npm.taobao.org 利用create-react-app ...

  7. react+redux+generation-modation脚手架添加一个todolist

    当我遇到问题: 要沉着冷静. 要管理好时间. 别被bug或error搞的不高兴,要高兴,又有煅炼思维的机会了. 要思考这是为什么? 要搞清楚问题的本质. 要探究问题,探究数据的流动. TodoList ...

  8. react+redux+generation-modation脚手架搭建一个todolist

    TodoList 1. 编写actions.js 2. 分析state 试着拆分成多个reducer 3. 了解store 4. 了解redux数据流生命周期 5. 分析容器组件和展示组件 搞清楚,数 ...

  9. 使用react+redux+react-redux+react-router+axios+scss技术栈从0到1开发一个applist应用

    先看效果图 github地址 github仓库 在线访问 初始化项目 #创建项目 create-react-app applist #如果没有安装create-react-app的话,先安装 npm ...

随机推荐

  1. scala成长之路(2)对象和类

    scala提供了一种特殊的定义单例的方法:object关键字 scala> object Shabi{ | val age = 0 | val name = "shabi" ...

  2. Python进阶-函数默认参数

    Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的调用,提供了默认参数机制: def pow(x, n = 2): r = 1 ...

  3. python2中将Unicode编码的中文和str相互转换

    在python2x版本中 关于中文汉字转换 1.中文------字符串格式 >>> s = '汉字' >>> type(s) <type 'str'> ...

  4. Python标准库--inspect

    inspect模块是针对模块,类,方法,功能等对象提供些有用的方法.例如可以帮助我们检查类的内容,检查方法的代码,提取和格式化方法的参数等. import inspect import os clas ...

  5. Messy Code in Windows Server 2008 R2 English Edition

          We always use Windows Server 2008 R2 English operation system. And it doesn't have any problem ...

  6. 玩转Node.js(四)-搭建简单的聊天室

    玩转Node.js(四)-搭建简单的聊天室 Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制.我便看了一 ...

  7. OpenCV入门:(六:基础画图函数)

    有时程序中需要画一些基础的图形,例如直线,矩形,椭圆以及多边形.OpenCV中当然有此类函数. 1.函数介绍 直线line: , , ) img – 图像 pt1 – 直线起点 pt2 – 直线终点 ...

  8. Leetcode代码补全——链表

    通过补全代码可以更深刻的体会到,链表就是一个存储方式,通过一单元的存储指向下一单元,而查看单元内容通过头部开始的指针依次遍历.这是leetcode里融合两个链表的题目,具体代码如下: #encodin ...

  9. 完整Android开发基础入门博客专栏

    博客地址:http://www.runoob.com/w3cnote/android-tutorial-contents.html

  10. Understand:高效代码静态分析神器详解(一) | 墨香博客 http://www.codemx.cn/2016/04/30/Understand01/

    Understand:高效代码静态分析神器详解(一) | 墨香博客 http://www.codemx.cn/2016/04/30/Understand01/ ===== 之前用Windows系统,一 ...