向大神致敬,也是我接触框架得开始。html
感谢张鑫旭大神,专业!致敬~ sea.js的7个API,都在下面得连接中有详细说明:前端
http://www.zhangxinxu.com/sp/seajs/docs/zh-cn/bootstrapping.html
seajs.use 经过 use 方法,能够在页面中加载任意模块git
seajs.config 可使用 config
方法来配置加载器github
define 使用全局函数 define
来定义模块bootstrap
require 函数用来访问其余模块提供的 API.浏览器
seajs.async 该方法可用来异步加载模块,并在加载完成后执行回调函数。app
exports 用来向外提供模块的 API框架
module.exports exports
对象由模块系统建立,这不能知足开发者的全部需求, 有时候会但愿 exports
是某个类的实例。 这时可用 module.exports
来实现异步
玉伯(王保平),淘宝前端类库 KISSY、前端模块化开发框架SeaJS、前端基础类库Arale的创始人。async
Q: Sea.js是什么?致力于解决什么问题?
A: Sea.js是一个很纯粹小巧的模块加载器,它只解决一个问题:前端代码的模块化。经过Sea.js,能够将大量JavaScript代码封装成一个个小模块,而后轻松实现模块的加载和依赖管理。A:
Arale则是一套知足支付宝需求的通用模块集合,是一套基于模块化的前端基础类库,目前具有100多个模块,简单易用。(简单了解下,万一从此用的到呢)
Q: 发起Sea.js项目的初衷是什么?它的本质意义是什么?
A:在前端开发过程当中,常常会出现一个单文件几千行甚至近万行的状况。这种大文件,对协做开发、后续维护、性能调优等都不利。
Sea.js初衷是帮助前端开发工程师将大文件拆分红小文件,能保持小颗粒度的模块化开发,同时不须要过多考虑依赖关系,让依赖管理轻松自如,让模块化开发变得更天然,就像浏览器原生提供的同样。
Sea.js的本质意义是经过模块化开发,来提升代码的可维护性。对工程师而言,是关注度分离,更将更多精力聚焦在代码自己的逻辑上。
Q:Sea.js的设计思想是什么?是如何具体实现的?
A:Sea.js的核心设计思想是保持简单。有两层含义:
职责清晰是让Sea.js的范畴明确,随时知道本身应该作什么,不该该作什么。一个框架,最怕的是需求膨胀,最怕的是复杂化。
性能优先是由于Sea.js是底层加载器,假若性能很差,直接会影响页面性能,所以源码中有很多地方会刻意追求性能。
适度完备是从功能的层面看Sea.js的API是否能知足经常使用需求,同时又能经过插件机制对外提供适度的可扩展性。Sea.js不追求可以知足全部需求,而是追求2/8原则
seajs开源地址的地址:https://github.com/seajs/seaj