前端性能优化四十七:工程目录设计范式种类
2023-12-26 15:41:17
1. 模块化:
①. 将一个复杂应用根据预设规范封装为多个块并组合起来:
a. 对内实现数据私有化
b. 对外暴露接口、其它模块通信
②. 在前端工程化具体体现:
a. 在文件层面上对代码与资源实现拆分与组装
b. 将一个大文件拆分为互相依赖的小文件,再统一拼装与加载
1. 工程目录设计范式种类:
(1). Rails Style:
①. 特点:
a. 专注纵向的"层"的划分
b. 同一类文件放置在同一目录下
②. 优势:
a. 便于合并导出
b. 便于进行"层"的扩展
③. 不足:
a. 依赖关系难以直接地分析
b. 对功能的修改会涉及到大量的目录切换
c. 难以水平拆分
2. 目录结构:
(1). Rails Style:
// egg应用典型结构
|── app
| ├── config
| ├── controller
| ├── extend
| ├── public
| ├── router.ts
| ├── service
| └── view
├── app.ts
├── agent.ts
├── config
├── logs
├── test
└── typings
// Rails Style TodoList
root
|── reducers
| ├── todoReducer.js
| └── fileterReducer.js
├── actions
| ├── todoActions.js
| └── filterAction.js
├── components
| ├── todoList.jsx
| ├── todoItem.jsx
| └── filter.jsx
├── containers
| ├── todoListContainer.jsx
| ├── todoItemContainer.jsx
| └── filterContainer.jsx
├── App.jsx
└── index.js
3. 如何选择工程范式:
(1). 单一功能的项目:
①. 场景:
a. 库
b. 第三方包fs-extra、axios等
②. 风格:
Rails Style
③. 理由:
a. 不存在水平拆分的必要性
b. 易于扩展
c. 减少重复代码
目录层级:
// Axios
root
|── dist
| └── ...
├── examples
| └── ...
├── lib
| ├── adapters
| | └── ...
| ├── cancel
| | └── ...
| ├── core
| | └── ...
| ├── defaults.js
| └── axios.js
├── sandbox
| └── ...
└── test
文章来源:https://blog.csdn.net/wanmeijuhao/article/details/135221639
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!