一个 React & Redux的目录树
- |-----------------------------------------|
- | |
- | React & Redux |
- | |
- |-----------------------------------------|
- Project
- |
- |-- node_modules
- | |
- | |-- react
- | |
- | |-- react-dom
- | |
- | |-- react-router
- | |
- | |-- react-redux => redux本身只能处理同步的Action
- | |
- | |-- react-thunk => 在我们没有加上thunk这个中间件之前,
- | | store的dispatch方法只能传入一个action对象,
- | | thunk的作用就是能够让我们可以将一个function方法传入diptach,
- | | 这在做异步的时候非常有用。
- | |
- | |-- redux-promise => redux-promise支持将promise对象作为参数传入dispatch中。
- | |
- | |-- prop-types => React.PropTypes 自 React v15.5 起已弃用。
- | | 请使用 prop-types 库代替。调用方法:
- | | import PropTypes from 'prop-types'
- | |
- | |-- @types/react => implements method in React.Component,解决
- | | Cannot resolve symbol 'Component' 的问题
- | |
- | |-- postcss-loader => PostCSS,一款通过 JS 插件转换 styles 样式的工具。
- | | 根目录下新建postcss.config.js文件。配置如下:
- | | module.exports = {
- | | parser: 'sugarss',
- | | plugins: {
- | | 'postcss-import': {},
- | | 'postcss-cssnext': {},
- | | 'cssnano': {}
- | | }
- | | }
- | | webpack配置:{
- | | test: /\.css$/,
- | | use: ['style-loader', 'css-loader','postcss-loader']
- | | }
- | |
- | |-- Autoprefixer => PostCSS插件,一个后处理程序。解析CSS并添加浏览器前缀。
- | | postcss.config.js文件中配置如下:
- | | module.exports = {
- | | plugins: [
- | | require('autoprefixer')({})
- | | ]
- | | }
- | |
- | |-- extract-text-webpack-plugin => 将css单独打包成一个文件。
- | | 它会将所有的入口 chunk(entry chunks)中引用的 *.css,
- | | 移动到独立分离的 CSS 文件。因此,你的样式将不再内嵌到JS bundle中,
- | | 而是会放到一个单独的 CSS 文件(即 styles.css)当中。
- | | 如果你的样式文件大小较大,这会做更快提前加载,因为 CSS bundle
- | | 会跟 JS bundle 并行加载。
- | |
- | |-- optimize-css-assets-webpack-plugin => 压缩抽离后的css代码,
- | | plugins: [new OptimizeCssAssetsPlugin()]
- | |
- | |-- html-webpack-plugin => 该插件将为您生成一个HTML5文件,
- | | 其中包括使用script标签的body中的所有webpack包。
- | |
- | |-- copy-webpack-plugin => 在webpack中拷贝文件和文件夹。例如:
- | | new CopyWebpackPlugin([
- | | {from: "./src/static/images", to: 'images/'}
- | | ])
- | | 作用就是将 ./src/static/images
- | | 目录下的图片拷到编译目录到 images 文件夹下面
- | |
- | |-- rimraf => 编译前清空dist目录。package.json配置:
- | | "scripts": {"build": "rimraf dist && ..."}
- | |
- | |-- OpenBrowserPlugin => webpack编译后自动打开浏览器
- | |
- | |-- axios => 一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中
- | |
- | |-- babel-eslint => 一个Babel parser的包装器,这个包装器使得Babel parser可以和ESLint协调工作
- | | .eslintrc.js中配置:"parser": "babel-eslint",
- | | "parserOptions": {
- | | "sourceType": "module",
- | | "allowImportExportEverywhere": false,
- | | "codeFrame": false
- | | }
- | |
- | |-- webpack
- | |
- | |-- webpack-dev-middleware
- | |
- | |-- webpack-hot-middleware
- |
- |-- dist => 打包输出文件目录
- |
- |-- src
- | |
- | |-- actions => Action是把数据从应用传到 store 的有效载荷。
- | | 它是 store 数据的唯一来源,一般通过
- | | store.dispatch() 将 action 传到 store。
- | |
- | |-- reducers => Action只是描述了有事情发生了这一事实,
- | | 并没有指明应用如何更新 state。
- | | reducer 用来做更新state这个动作。
- | |
- | |-- store => 1.维持应用的state;
- | | 2.提供 getState() 方法获取 state;
- | | 3.提供 dispatch(action) 方法更新state;
- | | 4.通过 subscribe(listener) 注册监听器;
- | | 5.通过 subscribe(listener) 返回的函数注销监听器。
- | |
- | |-- components => 展示型组件目录
- | |
- | |-- containers => 容器型组件目录
- | |
- | |-- config => 配置actionType、接口
- | |
- | |-- library => 插件库
- | |
- | |-- service => 服务配置
- | |
- | |-- static => 静态文件目录
- | |
- | |-- main.js => 入口文件
- |
- |-- webpack => webpack配置目录
- |
- |-- .babelrc => Bable的配置文件,用来设置转码规则和插件。
- | Babel是一个广泛使用的ES6转码器,
- | 可以将ES6代码转为ES5代码。
- |
- |-- .gitignore => git上传忽略特殊文件配置
- |
- |-- index.html
- |
- |-- README.md
- |
- |-- package.json => 定义了这个项目所需要的各种模块,以及项目的配置信息。
- |
- |-- package-lock.json => npm5.0后新增。记录了整个 node_modules
- | 文件夹的树状结构,当重新安装模块的时候,
- | 速度加快。但是,生成pack-lock.json后,
- | 重复执行npm install时将会以其记录的版本来安装。
- | 这时如果手动修改 package.json 中的版本,
- | 重新安装也不会生效,只能手动执行npm install
- | 命令指定依赖版本来进行修改。
- |
- |
- |-- yarn.lock => yarn.lcok文件是自动产生的,
- | 和package-lock.json的功能一样,
- | 只不过yarn可以做到手动更改package.json后,
- | 重新安装并更新lockfile。
一个 React & Redux的目录树的更多相关文章
- 我的第一个 react redux demo
最近学习react redux,先前看过了几本书和一些博客之类的,感觉还不错,比如<深入浅出react和redux>,<React全栈++Redux+Flux+webpack+Bab ...
- Immutable.js 以及在 react+redux 项目中的实践
来自一位美团大牛的分享,相信可以帮助到你. 原文链接:https://juejin.im/post/5948985ea0bb9f006bed7472?utm_source=tuicool&ut ...
- React+Redux实现追书神器网页版
引言 由于现在做的react-native项目没有使用到redux等框架,写了一段时间想深入学习react,有个想法想做个demo练手下,那时候其实还没想好要做哪一个类型的,也看了些动漫的,小说阅读, ...
- react案例->新闻移动客户端--(react+redux+es6+webpack+es6的spa应用)
今天分享一个react应用,应在第一篇作品中说要做一个react+redux+xxx的应用.已经做完一部分,拿出来分享.github地址为:点我就可以咯~ 这里实现了一个新闻移动站的spa.本来想写p ...
- react+redux教程(二)redux的单一状态树完全替代了react的状态机?
上篇react+redux教程,我们讲解了官方计数器的代码实现,react+redux教程(一).我们发现我们没有用到react组件本身的state,而是通过props来导入数据和操作的. 我们知道r ...
- react,react-router,redux+react-redux 构建一个React Demo
创建初始化应用 加速我们的npm. npm install -g cnpm --registry=https://registry.npm.taobao.org 利用create-react-app ...
- react+redux+generation-modation脚手架添加一个todolist
当我遇到问题: 要沉着冷静. 要管理好时间. 别被bug或error搞的不高兴,要高兴,又有煅炼思维的机会了. 要思考这是为什么? 要搞清楚问题的本质. 要探究问题,探究数据的流动. TodoList ...
- react+redux+generation-modation脚手架搭建一个todolist
TodoList 1. 编写actions.js 2. 分析state 试着拆分成多个reducer 3. 了解store 4. 了解redux数据流生命周期 5. 分析容器组件和展示组件 搞清楚,数 ...
- 使用react+redux+react-redux+react-router+axios+scss技术栈从0到1开发一个applist应用
先看效果图 github地址 github仓库 在线访问 初始化项目 #创建项目 create-react-app applist #如果没有安装create-react-app的话,先安装 npm ...
随机推荐
- scala成长之路(2)对象和类
scala提供了一种特殊的定义单例的方法:object关键字 scala> object Shabi{ | val age = 0 | val name = "shabi" ...
- Python进阶-函数默认参数
Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的调用,提供了默认参数机制: def pow(x, n = 2): r = 1 ...
- python2中将Unicode编码的中文和str相互转换
在python2x版本中 关于中文汉字转换 1.中文------字符串格式 >>> s = '汉字' >>> type(s) <type 'str'> ...
- Python标准库--inspect
inspect模块是针对模块,类,方法,功能等对象提供些有用的方法.例如可以帮助我们检查类的内容,检查方法的代码,提取和格式化方法的参数等. import inspect import os clas ...
- 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 ...
- 玩转Node.js(四)-搭建简单的聊天室
玩转Node.js(四)-搭建简单的聊天室 Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制.我便看了一 ...
- OpenCV入门:(六:基础画图函数)
有时程序中需要画一些基础的图形,例如直线,矩形,椭圆以及多边形.OpenCV中当然有此类函数. 1.函数介绍 直线line: , , ) img – 图像 pt1 – 直线起点 pt2 – 直线终点 ...
- Leetcode代码补全——链表
通过补全代码可以更深刻的体会到,链表就是一个存储方式,通过一单元的存储指向下一单元,而查看单元内容通过头部开始的指针依次遍历.这是leetcode里融合两个链表的题目,具体代码如下: #encodin ...
- 完整Android开发基础入门博客专栏
博客地址:http://www.runoob.com/w3cnote/android-tutorial-contents.html
- Understand:高效代码静态分析神器详解(一) | 墨香博客 http://www.codemx.cn/2016/04/30/Understand01/
Understand:高效代码静态分析神器详解(一) | 墨香博客 http://www.codemx.cn/2016/04/30/Understand01/ ===== 之前用Windows系统,一 ...