在编写一个js库之前需要准备许多基础知识。
本人在编写之前主要参考了visjs和百度的echarts这两个库的部分内容,这之中提取出几个要点如下:
1、如何整理代码结构,使模块与模块分开又不至于出现调用困难的现象?
首先讲一下上面两个参考的库使用的方法,visjs是一个相对较小的开源库,目前已经更新了很多个版本,但是最具参考意义的应该是0.0.9版,因为之后的版本增删改太多,命名方式也改的很奇葩,基本看不懂,读者可以从github上下载历史版本。他的代码整理工具用的是nodejs,通过一个生成方法,将多个文件拼装到一起并做一些后期处理。我认为这是最简单但是略显简陋的一种方式,因为所有的外层对象都互相可见,随着代码量的增大,变量重名的可能性增大,出错查不到那就会很蛋疼。另外一个库echarts使用的也是nodejs,但在代码管理上还增加了一套AMD规则库,esl.js,可以对代码进行按需加载,且不容易出现变量重名的现象,而且由于模块被define函数包裹,coder可以控制哪些模块函数对外可见。
综上,本文编写的类库也将使用esl作为模块加载器,并在需要的时候配合使用nodejs。当然如果你的库是要发布的,那么请在发布之前做好模块的拼装,不要出现过多的HTTP请求,导致页面加载缓慢。具体的使用方法:
模块定义:
define(function () { function Math(msg) {//定义了一个函数模块 this.Message = msg; } Math.prototype.Add = function (a, b) {//给函数模块的原型添加了Add方法 return a + b; }; return Math;//输出模块,只有输出模块才对外可见,无论define内部有多少个函数 });
模块使用:
var Math = require(["YouPath/jsFileName"]);//在另一个文件中向esl请求该模块 alter(Math.Add(1,2));//3
2、js库开发使用哪个IDE较好
这个得看个人习惯,以及开发的库的内容,我这次要开发的是一个动态窗口生成+动态数据加载的库,经过一段时间的搜索和磨合,最终我选择了使用WebStrom9.0+chrome这套组合。(话说webStorm是要收费的,不过你懂的,呵呵)为什么呢?主要原因是webStorm的页面漂亮,注释功能和代码整理功能强大,适合我。话说使用一套IDE最好能知道一些快捷键,这会是编码更加高效,毕竟脑子走的太快了,手根本跟不上。