React 脚手架使用

脚手架解决的问题

如果只是开发较小的前端 demo,那没必要使用脚手架工具(Scaffold)

但是如果开发大型前端项目,尤其多人共同开发时就需要面对以下问题:

  • 目录结构如何组织划分
  • 如何管理文件之间的相互依赖
    • 比如通过模块化方式将 JavaScript 编写在众多文件中,如何管理它们之间的相互依赖
  • 如何管理第三方模块或第三方库
  • 项目发布前如何压缩、打包项目
  • 如何将 less、sass 等语言转换为可被浏览器正常解析的 css

为解决上述问题,对应出现一系列工具,通过配置 babel、webpack、gulp 等工具完成语言转换、打包依赖、热更新等一系列问题,而脚手架可以认为是上述工具的集合体。

脚手架优点

脚手架可以快速生成项目的工程化结构。

虽然每个项目最终呈现的效果不同,但是其基本的工程化结构式相似的。基于此,完全可以使用一些
工具,帮助生成基本的工程化模板,避免每次费神费力地从零搭建项目。

在此工程化模板的基础上,针对不同的项目可以进行不同的项目配置与项目构建,间接保证项目的基本结构一致性,方便后期的项目维护。

总结:使用脚手架工具可以使项目流程(从搭建到开发,再到部署)变得快速、便捷。

前端脚手架

现在流行的三大框架都有属于自己的脚手架:

  • React:create-react-app
  • Vue:vue-cli
  • Angular:angular-cli

共同作用:帮助生成一个通用的目录结构,帮助配置开发所需的工程环境。

注:目前这些脚手架均由 node 编写,并且基于 webpack,所以需要 node 环境。

create-react-app 生成目录结构

my-app
├── README.md // readme 说明文档
├── node_modules // 项目依赖文件
├── package.json // 对整个应用的描述:应用名称、版本号、项目的启动和打包脚本等
├── .gitignore // Git 忽略提交规则
├── public
│   ├── favicon.ico // 应用程序顶部的 icon 图标
│   ├── index.html // 应用的 index.html 文件
│   └── manifest.json // web app 配置相关
└── src
    ├── App.css // App 组件相关样式
    ├── App.js // APP 组件代码文件
    ├── App.test.js // APP 组件的测试代码文件
    ├── index.css // 全局样式文件
    ├── index.js // 整个应用程序的入口文件
    ├── logo.svg // 页面呈现的 React 图标
    └── serviceWorker.js // 提前写好的注册 PWA 相关代码
    └── setupTests.js // 测试初始化文件

除以上文件,你有可能看到以下文件:

  • logo192.png:在 manifest.json 中使用
  • logo512.png:在 manifest.json 中使用

了解 PWA

PWA(Progressive Web Apps,渐进式 Web 应用)运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序。

PWA 即是一个网页,需要通过 Web 技术实现一个网页应用,辅以 App Manifest 和 Service Worker 实现 PWA 的安装和离线等功能,亦称之为 Web App。

PWA 解决的问题:

  • 网页可以添加至移动端主屏幕并生成图标,点击图标可以实现启动动画以及隐藏地址栏等功能
  • 实现离线缓存功能,在无网环境下,依然可以使用一些离线功能
  • 实现消息推送
  • 等一系列类似于 Native App 相关功能

了解 Webpack

三大框架的脚手架都是基于 Webpack 进行配置。

Webpack 是一个现代 JavaScript 应用程序的 静态模块打包工具(module bundler),当其处理应用程序时,会递归地构建一个包含应用程序所需的每个模块的依赖关系图(dependency graph)

Webpack 图示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值