谈谈刚接触sea.js框架得看法

向大神致敬,也是我接触框架得开始。

感谢张鑫旭大神同学得整理,专业!致敬~   sea.js的7个API,都在下面得链接中有详细说明:

http://www.zhangxinxu.com/sp/seajs/docs/zh-cn/bootstrapping.html 

seajs.use   通过 use 方法,可以在页面中加载任意模块

seajs.config  可以使用 config 方法来配置加载器

define  使用全局函数 define 来定义模块

require    函数用来访问其他模块提供的 API.

seajs.async 该方法可用来异步加载模块,并在加载完成后执行回调函数。

exports  用来向外提供模块的 API

module.exports  exports 对象由模块系统创建,这不能满足开发者的所有需求, 有时候会希望 exports 是某个类的实例。 这时可用 module.exports 来实现

玉伯(王保平),淘宝前端类库 KISSY、前端模块化开发框架SeaJS、前端基础类库Arale的创始人。

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的核心设计思想是保持简单。有两层含义:

  1. 对外保持使用接口的简单。Sea.js的常用API只有7个,使用者一旦了解,基本没什么记忆成本,可以快速上手。
  2. 内部实现代码尽可能简单。追求内部实现的简单有很多好处,比如别人可以比较容易读懂源码,这样就能参与进来协同开发。源码简单,往往也意味着不太会有晦涩的bug存在。
  3. Sea.js的设计理念还有职责清晰、性能优先和适度完备。 

    职责清晰是让Sea.js的范畴明确,随时知道自己应该做什么,不应该做什么。一个框架,最怕的是需求膨胀,最怕的是复杂化。

    性能优先是因为Sea.js是底层加载器,倘若性能不好,直接会影响页面性能,因此源码中有不少地方会刻意追求性能。

    适度完备是从功能的层面看Sea.js的API是否能满足常用需求,同时又能通过插件机制对外提供适度的可扩展性。Sea.js不追求能够满足所有需求,而是追求2/8原则

    seajs开源地址的地址:https://github.com/seajs/seaj

时间: 2024-10-10 00:54:13

谈谈刚接触sea.js框架得看法的相关文章

JavaScript模块加载框架sea.js 学习一

简单总结sea.js 学习 文件目录结构 /sea/sea.js      下载地址  http://seajs.org/docs/#downloads /sea/jquery-sea.js   下载地址 http://jquery.com/download/ /sea/sea_config.js /sea/home.jsdata.js /sea/data.js 1.html页面代码文件 <style> .ch{height:200px;width:200px;background:#ccc;

js模板加载框架 sea.js学习笔记

seajs实现了JavaScript 的 模块开发及按模块加载.用来解决繁琐的js命名冲突,文件依赖等问题,其主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载. 官方文档:http://seajs.org/docs/#docs 首先看看seajs是怎么进行模块开发的.使用seajs基本上只有一个函数“define” fn.define = function(id, deps, factory) { //code of function… } 使用define函数来进行定义一个模块

Seajs是什么及sea.js 由来,特点以及优势

Seajs是什么及sea.js 由来,特点以及优势 这篇文章主要介绍了Seajs的相关知识和和学习心得,适合刚接触SeaJS的同学,需要的朋友可以参考下,有更好的新手教程或文档,欢迎推荐.分享 1.Seajs简介 Seajs,一个Web模块加载框架,追求简单.自然的代码书写和组织方式,:Sea.js 遵循 CMD 规范,模块化JS代码.依赖的自动加载.配置的简洁清晰,可以让程序员更多地专注编码. 2.Seajs优缺点 优点: 1).提高可维护性. 2).模块化编程. 3).动态加载,前端性能优化

记录:sea.js和require.js配置 与 性能对比

最近有点忙,很久无写博客,记录一下之前的配置require.js和sea.js的配置.(有误有望提出 require.js 文件目录 /app(项目使用js) /lib(require.js jq存放处) /plugin(框架对应的功能插件) require.js比较方便在于,不是amd的模块组件可以通过配置文件进行依赖配置.而且异步加载js 页面加载速度是杠杠的.当然会有点问题的,网速过慢的话,可能会出现js,timeout(可以通过配置解决. config.js (配置文件) // 配置信息

刚接触Joomla,写一下瞎折腾的初感受~

我这几天一直在苦苦寻找一款可以长期投靠的CMS产品,要求的是 1)必须支持命名空间 2)必须OOP + MVC分层 3)丰富分文档和使用群体,至少是出名的,免得哪一天他们解散了 4)-- 一开始我把目光投向了drupal,看了一下中文网络对他的介绍,什么节点存储思路,创造了什么先河.看了之后都睡不着觉了,恨不得开灯起来下载测试下. 不过第二天下载来安装发现,很让自己失望(自己对Drupal的感受的文章 http://blog.csdn.net/default7/article/details/3

JS 框架之我感

对于一些js框架在我看来,都是将前端的表现动态化,即用动态js把html加载到页面上,如angularJS的MVVM开发模式(已接触),ReactJS的View层组件化(学习中),还有一些只听过没见过,没见过没听过的框架. 现在我感觉这种通过javascript动态写入到网页中的开发模式对于seo的支持是很不友好的,而从开发.维护角度看确实很大的创新. angularJS是通过项目开发学习到的,感觉还不错,由于对seo不友好,但是也开发了80%,访问速度也很快(应用的是单页模式,刚刚接触也只能参

Sea.js创始人玉伯的前端开发之路

玉伯,淘宝前端类库 KISSY.前端模块化开发框架SeaJS.前端基础类库Arale的创始人.本期[开源专访]我们邀请玉伯来为我们分享一些关于前端框架.前端开发的那些事,以及前端大牛是如何炼成的. 在Web应用程序的用户体验越来越被重视的今天,前端开发的地位也上升到了前所未有的高度,而随之而来的也有更多的挑战. 为了将前端开发者繁重的工作变得简单,框架应运而生.国内也不乏一些非常优秀的前端开发框架.本期[开源专访]我们邀请到了国内前端大牛玉伯(@玉伯也叫射雕),请他为我们分享一些关于前端框架.前

你需要了解的JS框架

excanvas.js/Chart.js/cubism.js/d3.js/dc.js/dx.chartjs.js/echarts.js/flot.js 用途:构建数据统计图表,兼容多浏览器 jquery.tagcanvas.js       用途:构建tag云 下载地址:http://www.goat1000.com/tagcanvas.php jquery.fullPage.js      用途:网站整屏轮番 下载地址:http://www.jq22.com/jquery-info1124 案

sea.js介绍

网址:http://seajs.org/docs/ SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载.SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的JavaScript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑.SeaJS可以与