一个 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 ...
随机推荐
- 在Pycharm中导入第三方模块库(诸如:matplotlib、numpy等)
在Pycharm中导入第三方模块库 一.打开pycharm: 二.点击菜单上的“file” -> “setting”: 三.步骤二完成后出现界面如下所示.选中你的项目(比如thisyan Pro ...
- 帆软中使用switch将控件的显示值“传递”给单元格
如下图,控件的实际值和显示值是我们自定义的. 当我们选择控件时,想要在某个单元格内显示控件的显示值.一般我们在单元格内直接 $控件名 可以获得控件值.比如当我们选择事故数时,我们自然不能在单元格内直 ...
- Flask初学者:url_for
URL反转:反转是指通过视图函数名称得到其对应的URL(有反转也就有正转,即通过URL得到视图函数返回的内容,也就是我们平时的访问网页了),需要“url_for(endpoint, **values) ...
- C语言实例解析精粹学习笔记——34(用“结构”统计学生成绩)
实例34: 设学生信息包括学号.姓名和五门功课的成绩,要求编写输入输出学生信息的函数.在输入学生信息后,以学生成绩的总分从高到低顺序输出学生信息. 思路: 程序引入一个结构数组依次存储输入的学生信息, ...
- 分布式系统的CAP(Redis)
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点.而由于当前的网络硬件肯定会出现延迟丢包等问题,所以 分区容忍性是我们必须需要实现的. 所以我们只能在一致性和可用性之间进行权衡,没有NoSQ ...
- windows 系统禁止使用 U 盘的方法
windows 系统禁止使用 U 盘的方法 最简单的办法: 注册表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentCntrolSet\Services\USBSTOR] 将名为 ...
- mysql_connect(): [2002] No such file or directory
在mac中搭建php的开发环境 1. apach ---- 推荐用MAMP.你只要把你的php文件/项目放入到htdocs(/Applications/MAMP/htdocs)目录下,启动mamp,输 ...
- jmeter无法启动的解决办法
jmeter下载地址: 链接: https://pan.baidu.com/s/15YhiPH-kNVxISEZ4Mxf_WA 提取码: 25sv jdk 8.0 下载地址: 链接: http ...
- LeetCode - 67. Add Binary(4ms)
Given two binary strings, return their sum (also a binary string). The input strings are both non-em ...
- K-Means和FCM聚类
K均值聚类是基于原型的.划分的聚类方法.聚类数K由用户指定,初始的K个聚类中心随机选取,然后将每个点分派到最近的聚类中心,形成K个簇,接下来重新计算每个簇的聚类中心,重复上一步,直到簇不发生变化或达到 ...