zoukankan      html  css  js  c++  java
  • 一个 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。 
         
  • 相关阅读:
    在你设计中可能用到的20个杂志 PSD 原型
    Gradify
    CamanJS – 提供各种图片处理的 JavaScript 库
    免费素材:包含 250+ 组件的 DO UI Kit
    24个很赞的 Node.js 免费教程和在线指南
    Dynamics.js
    Page Scroll Effects
    Slides
    15款加速 Web 开发的 JavaScript 框架
    Wee – 为现代 Web 开发打造的 CSS 脚手架
  • 原文地址:https://www.cnblogs.com/Man-Dream-Necessary/p/7872862.html
Copyright © 2011-2022 走看看