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

Sea.js是一款专注于前端代码模块化的加载器,旨在简化大型JavaScript文件的管理与维护。通过其简洁的API,如seajs.use和seajs.config等,开发者能够轻松实现模块的加载与依赖管理。

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

感谢张鑫旭大神,专业!致敬~   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



转载于:https://www.cnblogs.com/yang-11/p/4800560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值