前端工程化需要考虑哪些因素?
1. 模块化
简单来说,模块化就是将一个大文件拆分成相互依赖的小文件,再进行统一的拼装和加载。(方便了多人协作)。
分而治之是软件工程中的重要思想,是复杂系统开发和维护的基石,这点放在前端开发中同样适用。模块化是目前前端最流行的分治手段。
模块化开发的最大价值应该是分治!
不管你将来是否要复用某段代码,你都有充分的理由将其分治为一个模块。
JS模块化方案
AMD/CommonJS/UMD/ES6 Module等等。
CommonJS的核心思想是把一个文件当做一个模块,要在哪里使用这个模块,就在哪里require这个模块,然后require方法开始加载这个模块并且执行其中的代码,最后会返回你指定的export对象。
module.export = function() { hello: function() { alert('你好')}}var a = require('./xxx/a.js')a.hello()// ==>d窗“你好”
CommonJS 加载模块是同步的,所以只有加载完成才能执行后面的 *** 作,不能非阻塞的并行加载多个模块。
AMD(异步模块定义,Asynchronous Module Definition),特点是可以实现异步加载模块,等所有模块都加载并且解释执行完成后,才会执行接下来的代码。
// 通过AMD载入模块// define(// module_id /*可选*/, // [dependencies] 可选, // definition function /*回调 用来初始化模块或对象的函数*/// )define(['myModule', 'myOtherModule'], function(myModule, myOtherModule) {console.log(myModule.hello()) //会先并行加载所有的模块a b 并执行其中模块的代码后,在执行逐步执行下面的 consolerequire('a') console.log('a required') require('b') console.log('b required') console.log('all modules have been required')})
在一些同时需要AMD和CommonJS功能的项目中,你需要使用另一种规范:Universal Module Definition(通用模块定义规范)。UMD创造了一种同时使用两种规范的方法,并且也支持全局变量定义。所以UMD的模块可以同时在客户端和服务端使用。
幸运的是在JS的最新规范ECMAScript 6 (ES6)中,引入了模块功能。
ES6 的模块功能汲取了CommonJS 和 AMD 的优点,拥有简洁的语法并支持异步加载,并且还有其他诸多更好的支持(例如导入是实时只读的。(CommonJS 只是相当于把导出的代码复制过来))。
bp)就是用来把所有文件整合在一起用的文件,即一个工程文件代表一个项目。其中工程的构造块主要包括基本模块 (.bas)和窗体模块(.frm)。而窗体文件就是你运行程序时看到的窗体,保存的空间属性分为两个部分。一部分是可以使用字符串来表示的,例如字符串,数字等的信息,存放在扩展名为Frm的文件中;另一部分不能使用字符串表示,例如图片,则存放在与Frm同名,但是扩展名为Frx的二进制窗体文件中。其他VB中常见的文件还有:
.bas 基本模块
.cls 类模块
.ddf 打包和展开向导 CAB 信息文件
.dep 打包和展开向导从属文件
.dsr 活动的设计器文件
.dsx 活动的设计器的二进制文件
.dws 部署向导脚本文件
.log 加载错误的日志文件
.oca 控件类型库缓存文件
.res 资源文件
.vbg Visual Basic 组工程文件
.vbl 控件许可文件
.vbr 远程自动化注册文件
.vbw Visual Basic 工程工作空间文件
.dll 运行中的 ActiveX 部件
.exe 可执行文件或 ActiveX 部件
.ocx ActiveX 控件
自由文件是单独保存的一个项目,工程文件是收集了数据,打开来是整个所有项目的合计,所以两个方式有所区别的,所以关闭自由文件,点击保存就好,直接完毕保存,如果是关闭工程文件化,先点击收集文件,收集完毕后保存之后关闭欢迎分享,转载请注明来源:内存溢出
评论列表(0条)