require(jquery); 内部处理是先替换 alias, 再替换 paths, 1) require('jquery') 当前解析为 jquer...
本文给大家分享sea.js知识总结,感兴趣的朋友一起学习吧 http://reactjs.cn/ http://reactjs.cn/react/docs/getting-started-zh-CN.html...图片.png 组件和插件 ? Image.png ? Image.png w3c自定义组件里面第一个字母必须大写: ? Image.png 写好组件就进行调用: ? Image.png ?
配置 可以对 Sea.js 进行配置,让模块编写、开发调试更方便。 ---- seajs.config seajs.config(options) 用来进行配置的方法。...'' : 'json' ], // 调试模式 debug: true, // Sea.js 的基础路径 base: 'http://example.com/path/to/base...// 在老浏览器中,提前加载好 ES5 和 json 模块 seajs.config({ preload: [ Function.prototype.bind ?...base String Sea.js 在解析顶级标识时,会相对 base 路径来解析。详情请参阅 模块标识 注意:一般请不要配置 base 路径,把 sea.js 放在合适的路径往往更简单一致。...插件的配置 插件可以给 Sea.js 添加配置项,请查看具体插件了解相关配置。 配置文件 配置可以直接写在 html 页面上,也可以独立出来成为一个文件。
而a和b访问的仍是自己定义的局部变量a,因为同名时,局部变量优先于全局变量。
参考seajs快速入门 一、前端模块化的价值 解决命名冲突 摆脱文件依赖 性能优化 提高可维护性 seajs.use方法调用 通过exports暴露接口 通过require引入依赖 二、Sea.js...的常用 API seajs.config base string Sea.js 在解析顶级标识时,会相对 base 路径来解析 seajs.use 用来在页面中加载模块 require...顶级标识:顶级标识不以点(.)或斜线(/)开始, 会相对模块系统的基础路径(即 Sea.js 的 base 路径)来解析 四、 使用步骤 引入sea.js文件(方法与引用jQuery相同) 配置信息 在...'' : 'json' 29 ], 30 31 // 调试模式 32 debug: true, 33 34 // Sea.js 的基础路径 35 base: 'http://example.com.../main', function(main) { 5 main.init(); 6 }); 7 use 方法还可以一次加载多个模块: 8 9 // // 并发加载模块 a 和模块 b,并在都加载完成时
可以看出如果url的hash有变化,[r.handle]就会调用到 [i.extend.navigate] 这网页写的没考虑兼容webkit,只兼容了ie和chrome 这网页会调用Location...v=20170215:61) t.exec (sea.js:2) t.use.e.callback (sea.js:2) t.onload (sea.js:2) t.load (sea.js:2...) d (sea.js:2) onload (seajs-css.js:110) ==== line:6272, [http://tmisc.home.news.cn/search/...v=20170215] , [] line:2, [http://tmisc.home.news.cn/search/font/js/base/sea.js] , [t.exec] line:2,.../search/font/js/base/sea.js] , [t.onload] line:2, [http://tmisc.home.news.cn/search/font/js/base/sea.js
为了方便描述,我们使用 Sea.js 来作为模块化开发框架。 使用 Sea.js 来解决 Sea.js 是一个成熟的开源项目,核心目标是给前端开发提供简单、极致的模块化开发体验。...小结 除了解决命名冲突和依赖管理,使用 Sea.js 进行模块化开发还可以带来很多好处: 模块的版本管理。通过别名等配置,配合构建工具,可以比较轻松地实现模块的版本管理。提高可维护性。...通过 Sea.js 的 Node.js 版本,可以很方便实现模块的跨服务器和浏览器共享。模块化开发并不是新鲜事物,但在 Web 领域,前端开发是新生岗位,一直处于比较原始的刀耕火种时代。...直到最近两三年,随着 Dojo、YUI3、Node.js 等社区的推广和流行,前端的模块化开发理念才逐步深入人心。 前端的模块化构建可分为两大类。...从长远来看,小而美更具备宽容性和竞争力,更能形成有活力的生态圈。 总之,模块化能给前端开发带来很多好处。如果你还没有尝试,不妨从试用 Sea.js 开始。
什么是系统 在生活和工作中,我们会接触到大量系统:自然界生态系统、计算机操作系统、软件办公系统,还有教育系统、金融系统、网络系统、理论系统等等。究竟什么是系统呢?...模块系统 Sea.js 是一个适用于 Web 浏览器端的模块加载器。在 Sea.js 里,一切皆是模块,所有模块协同构建成模块系统。Sea.js 首要要解决的是模块系统的基本问题: 模块是什么?...在 Sea.js 里,我们专注于 JS 模块(其他类型的模块可以转换为 JS 模块): 模块是一段 JavaScript 代码,具有统一的基本书写格式。模块之间通过基本交互规则,能彼此引用,协同工作。...把上面两点中提及的基本书写格式和基本交互规则描述清楚,就能构建出一个模块系统。对书写格式和交互规则的详细描述,就是模块定义规范(Module Definition Specification)。...Sea.js 遵循的是 CMD 规范,会在接下来的文档中详细阐述。 延伸阅读 function / bind 的救赎 继承与混合,略谈系统的构建方式
回顾 之前也写了几篇关于javascript模块的博客,链接如下: 回头再看JS模块化编程[2] 回头再看JS模块化编程之AMD[3] sea.js的同步魔法[4] 近几天准备总结一下javascript...这篇博客主要说下自己关于UMD的一点认知和思考,从实现一个简单的UMD模块,再到实现一个有依赖关系的UMD模块,整个过程加深了我对UMD模块的理解。...给个sea.js调用UMD的效果页面链接,sea.js调用UMD模块[9] 而nodejs调用UMD模块需要执行node命令, node umd-simple-used-by-nodejs 效果如下:...umd-module-depended和umd-module都是UMD模块,后者依赖前者。 sea.js%E7%9A%84%E5%90%8C%E6%AD%A5%E9%AD%94%E6%B3%95.html [5] Git仓库: https
我们通过sea.js来加载我们定义的模块(这会儿遵循CMD规范)并使用相应的数据。...首先,当然是要下载sea.js,可以直接去 http://seajs.org/docs/#downloads 直接下载代码包,解压后 在 /dist/目录下可以 找到 sea.js CMD规范是懒加载,...index.html: 首先包含资源sea.js ,再包含主模块,这里因为要执行主模块中返回的数据,所以使用了回调函数的处理 sea.js"> //加载入口文件main.js,默认后缀js自动匹配 seajs.use('.
请求,返回模拟的响应数据) 用法简单(符合直觉的接口) 数据类型丰富(支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等) 方便扩展(支持支持扩展更多数据类型,支持自定义函数和正则...}, { "id": 2 }, { "id": 3 } ] } Sea.js...(CMD) 因为 Sea.js 社区尚未提供 webpack 插件,所以 Mock.js 暂不完整支持通过 Sea.js 加载。...一种变通的方式是,依然通过 Sea.js 配置和加载 Mock.js,然后访问全局变量 Mock。
Sea.js 则专注于 Web 浏览器端,同时通过 Node 扩展的方式可以很方便跑在 Node 环境中。 遵循的规范不同。...Sea.js 更贴近 CommonJS Modules/1.1 和 Node Modules 规范。 CMD 推崇依赖就近,AMD 推崇依赖前置。...Sea.js 不强推,采用自主封装的方式来“海纳百川”,目前已有较成熟的封装策略。 对开发调试的支持有差异。...Sea.js 采取的是通用事件机制,插件类型更丰富。 执行机制不同。 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。...export default function() { }; var myapi = {}; export { myapi as default }; 导入变量/方法 导入变量/方法的时候变量和方法名必须和导出时一致
翻译过来大致就是: RequireJS 是一个 js 文件和模块加载器。它非常适合在浏览器中使用,但它也可以用在其他 js 环境, 就像 Rhino 和 Node。...2、CMD (Common Module Definition) 和 AMD 类似,CMD 是 Sea.js 在推广过程中对模块定义的规范化产出。Sea.js 是阿里的玉伯写的。...Sea.js 官网这么介绍 Sea.js: "Sea.js 追求简单、自然的代码书写和组织方式,具有以下核心特性:" "简单友好的模块定义规范:Sea.js 遵循 CMD 规范,可以像 Node.js...来看看 CMD 规范的实现: sea.js"> 首先要在 html 文件中引入 sea.js 工具库...所以在引入 sea.js 文件后,再引入的其它文件,都可以使用 define 来定义模块。
有的推荐第三方框架,比如 In.js、requrieJS、sea.js、lab.js等。这个开阔了眼界,以前只知道sea.js,省去了自己搜索的麻烦。...主要看的是sea.js,目前简单的理解是:一个加载js的机制 + 模块化编程(CMD规范)的理念。这个是淘宝用的,肯定很强大、很结实了。那么我是不是拿来用呢?...我不想用前者,因为每次都要去服务器加载,和初衷不符。我想用后者,当然我也知道,不可能一辈子不变,只能尽量延迟修改的时间。所以就需要——简单。越简单越不需要修改,也就可以保持更长的时间。
JS模块化和使用 很久以前就知道js模块化开发可以使用require.js和sea.js,就一直没去看看。...最近在了解查看的,度一下require.js相关的博客和文章,写得真是操蛋的疼,都是互相抄来抄去,博主应该都没有自己实际去敲过,哪怕给我写一个完整的简单应用示例我都可以上手,结果把自己折腾得……后面也看来sea.js...它的终极目标是提供一个类似Python,Ruby和Java标准库。...这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中。...RequireJS 和 Sea.js 都是模块加载器,倡导模块化开发理念,核心价值是让 JavaScript 的模块化开发变得简单自然。
(正在考虑要不要使用sea.js) 5、 Js服务加载的js文件,不需要做任何修改。当然也不负责各个文件里的函数名称是否冲突。 Sea.js追求自然编程,代码要写的自然。...只是在加载js这块和sea.js的思路有点不同。 ...如果自己要开发一套UI插件,那么在开发调试阶段,要加载未合并的js,这样便于调试和修改。开发的差不多了,在改成引用合并后的js文件。那么引用js的部分怎么处理呢?...看了sea.js的介绍,里面也提到了命名空间的方式,是yahoo用过。Sea.js并不推荐,因为使用的时候要记住长长的命名空间。但是我觉得这个不算事呀。...另外登录OA,第一件事情就是输入用户名和密码,那么完全可以利用这个“空余”时间来实现其他js的加载。 目前只想到这些,还有哪些疑问,欢迎大家提问。
本周跟大家分享6月1日在深圳举办的腾讯大讲堂【Sea.js与前端技术平台梦】讲座视频。...下面为本期主讲嘉宾 支付宝前端基础技术负责人王保平(玉伯)的主题分享:《Sea.js 与前端技术平台梦》 视频内容
每一个模块都是一个单独的作用域,也就是说,在一个文件定义的变量(还包括函数和类),都是私有的,对其他文件是不可见的。...那seajs和requirejs的差别呢? “ 定位有差异。RequireJS 想成为浏览器端的模块加载器,同时也想成为 Rhino / Node 等环境的模块加载器。...Sea.js 更贴近 CommonJS Modules/1.1 和 Node Modules 规范。 推广理念有差异。...Sea.js 采取的是通用事件机制,插件类型更丰富。 总之,如果说 RequireJS 是 Prototype 类库的话,则 Sea.js 致力于成为 jQuery 类库。...” 四、UMD umd是AMD和CommonJS的糅合 AMD 浏览器第一的原则发展 异步加载模块。
require.config() 用于声明基本路径和模块名称;define() 用于定义模块对象;require() 则用于加载模块并使用。...sea.js 是一个模块加载器,是 AMD 规范的主要实现者之一。...使用 sea.js 定义和使用模块的示例如下所示: /** sea.js **/ // 定义模块 math.js define(function(require, exports, module) {...sea.js 作为 AMD 规范的升级版,简化了使用方法,在使用上更加方便,值得推崇。但是 sea.js 便是浏览器开发中最佳的模块化解决方案吗?未必,还要看是什么类型的项目,后面会讲到。...至于是使用原生的 ES 模块规范,还是使用sea.js,要看具体场景。如果想页面尽快加载,sea.js 适合;如果是单页面网站,适合使用原生的 ES6 模块规范。
领取专属 10元无门槛券
手把手带您无忧上云