摘要:前言想要快速开始多页面应用项目结构如何更合理想要快速上手想要快速使用想要一键使用并能快速自定义主题样式可以的这里,受和的启发,我做了这样一个的脚手架,让你一键搭建项目,快速开始。
前言
想要快速开始 react 多页面应用?
项目结构如何更合理?
想要快速上手 Mobx?
想要快速使用 TypeScript?
想要一键使用 Ant-Design 并能快速自定义主题样式?
可以的!!!
这里,受 Vue-cli 和 create-react-app 的启发,我做了这样一个 react 的脚手架 handy-cli,让你一键搭建项目,快速开始。
特性简单易用,零配置
丰富的特性可供选择 (Ant Design,TypeScript,Mobx,EsLint,TsLint)
支持导出 webpack 相关配置到项目目录下
多页面的支持
提供多种状态管理方式
使用 ant-design 后,非常容易定制化 ant-design 主题
支持代码保存时和代码提交时校验代码风格
安装使用npm安装: npm install handy-cli -g 使用yarn安装 yarn global add handy-cli项目git 使用
handy create预览 使用手册cd npm run start
Folder Structure
Single And Multi Page
Eject
Linter
State Management
Use Ant Design
Styles And Modules
Proxy
Folder Structure运行handy create you-app-name(例如选择了 ant-design、eslint、mobx),handy-cli 会生成如下项目结构
├── node_modules ├── public ├── modifyVars.json ├── package.json ├── readme.md ├── .eslintrc ├── .gitignore └── src ├── components │ ├── ResultItem │ │ └── ResultItem.js │ └── Scroll │ └── Scroll.js ├── modules │ └── mobxGitSearch │ ├── components │ │ ├── ResultList │ │ │ └── ResultList.js │ │ └── Search │ │ └── Search.js │ └── index.js ├── pages │ └── index │ ├── index.js │ └── routes.js ├── stores │ └── SearchGitStore.js └── utils └── index.js
在 src 目录下,有如下子目录
components(公共组件目录), 多个路由页面都会用到的公共组件放在这
modules(路由页面目录),modules 下的每一个子文件夹代表一个单一的路由页面,比如 Dashboard 页面,欢迎页面
pages(多页面文件夹), 每一个子文件夹代表一个单一的SPA 项目,主要存放 SPA 的入口文件
stores(存放 mobx 的 stores)
utils
注意上面说的这些目录已经配置在config.resolve.alias,所以,在代码中不需要指定相对路径了
in src/modules/mobxGitSearch/index.js import {shake} from "utils"
not
in src/modules/mobxGitSearch/index.js import {shake} from "../utils"Single And Multi Page
使用 handy-cli 初始化项目后,src/pages 下只有一个 index 文件夹,也就是是个单页应用,要想添加新的独立的单页面很简单
例如,在 src/pages 下新建 doule12 文件夹
src ├── pages └── index │ ├── index.js │ └── routes.js ├── doule12 │── index.js in src/pages/doule12/index.js. ReactDOM.render(double 12
, document.getElementById("root"), ); if (module.hot) { module.hot.accept(() => {}); }
重启服务后访问 localhost:3000/doble12 就可以看到新加的页面,而 localhost:3000 是默认的单页面
Eject如果你想修改一些 webpack 的配置,在项目根目录,确认代码已经 commit 后,可以执行handy eject来导出 webpack 的相关配置
Linter支持 Tslint 和 Eslint
如果在创建项目时选择了使用 Typescript,代码校验就只提供 Tslint,要是没选 TypeScript,就提供 Eslint 供选择,Eslint 相关的提供了eslint with airbnb config 和 eslint with prettier config,推荐使用 airbnb config
要想修改一些校验规则,可以修改项目根目录下的.eslintrc 或者 tslint.json
检测时机可以选择在代码保存或者提交代码的时候校验,为了代码更快的编译,在提交时校验比较好。提交代码校验的相关配置在 package.json 中
"husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "linters": { "*.{js,jsx}": [ "eslint --fix", "git add" ] }, "ignore": [ "**/build/**.js" ] }State Management
可供选择的状态管理方式
Normal(the build in Context API)
Mobx
Dva(开发中))
Use Ant Designhandy-cli 提供了 ant-design 的按需使用加载,创建项目时选择了 ant-design 后可以零配置的直接使用
+ import { Pagination } from "antd"; +自定义 ant-design 的样式主题
如果选择了使用 ant-design,在项目根目录下会有个 modifyVar.json 文件,在这里定义的那些 less 样式变量,都可以在 modifyVar.json 中赋予新值,保存后,不用重启服务,自动会重启,页面样式就变了
Styles And Modules支持 less,sass,stylus and css modules
注意: 如何想使用 css modules,样式文件要以 .module.css 、 .module.less、 .module.sass、.module.styl作为后缀
Proxy开发时要代理到后端服务,在 package.json 中新增 proxy 字段,如下
"proxy": "http://localhost:4000", or proxy: { "/api": { target: "", pathRewrite:{ "api":"" }, changeOrigin: true }, "/foo": { target: " " } }
see more proxy options
最后欢迎试用,提 BUG
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/99099.html
摘要:开发一个自己的脚手架了解了一些脚手架的工作方式与的基本概念,咱们就可以来创建一个属于自己的脚手架。引言 下面是一个使用脚手架来初始化项目的典型例子。 showImg(https://user-gold-cdn.xitu.io/2019/5/16/16ac081750971790); 随着前端工程化的理念不断深入,越来越多的人选择使用脚手架来从零到一...
摘要:公司的前端技术栈是,而笔者之前使用的是,因此正好想利用的自己构建个的管理项目来加深的使用。会出现不在尾部的问题。 前言 在日常使用github中,除了利用git进行项目版本控制之外,最多的用处就是游览各式的项目,在看到一些有趣或者有用的项目之后,我们通常就会顺手star,目的是日后再看。但是当我们star了许多项目之后,回过头想找一个的项目就会发现,很难在短时间内找到它,官方也并没有提...
摘要:是一个前端页面制作工具,方便产品,运营和视觉的同学迅速开发简单的前端页面,从而可以解放前端同学的工作量。支持恢复现场功能关闭页面配置不丢失支持操作。提供了一个方法,用于的拆分。就是发出的通知,表示应该要发生变化了。 pagemaker是一个前端页面制作工具,方便产品,运营和视觉的同学迅速开发简单的前端页面,从而可以解放前端同学的工作量。此项目创意来自网易乐得内部项目nfop中的page...
摘要:问题回答者黄轶,目前就职于公司担任前端架构师,曾就职于滴滴和百度,毕业于北京科技大学。最后附上链接问题我目前是一名后端工程师,工作快五年了。 showImg(https://segmentfault.com/img/bVbuaiP?w=1240&h=620); 问题回答者:黄轶,目前就职于 Zoom 公司担任前端架构师,曾就职于滴滴和百度,毕业于北京科技大学。 1. 前端开发 问题 大...
阅读 2123·2021-11-22 15:29
阅读 4076·2021-11-04 16:13
阅读 972·2019-08-29 16:58
阅读 322·2019-08-29 16:08
阅读 1438·2019-08-23 17:56
阅读 2347·2019-08-23 17:06
阅读 3148·2019-08-23 16:55
阅读 2029·2019-08-23 16:22