Seajs 笔记

Seajs 笔记Seajs 介绍 seajs 是国内的一套模块化开发框架 有淘宝工程师王伯写的 有中文文档 学习简单开源代码库 https github com seajs seajsSeajs 出现的比较晚 因此借鉴了 nodejs 的 commonjs 规范 加载时同步的 但是前端使用文件是要异步加载文件的 加载完成之后才能使用 又借鉴了前端的 AMD 规范 seajs 的规范称之为 cmd 规范 这套框架在使用

Seajs介绍

seajs是国内的一套模块化开发框架,有淘宝工程师王伯写的,有中文文档,学习简单

开源代码库

https://github.com/seajs/seajs

Seajs出现的比较晚,因此借鉴了,nodejs的commonjs规范(加载时同步的),但是前端使用文件是要异步加载文件的,加载完成之后才能使用,又借鉴了前端的AMD规范,seajs的规范称之为cmd规范,这套框架在使用的时候,建议我们使用commonjs规范

模块化开发分两步: 定义模块、 使用模块

①seajs的引入

seajs 引入之后会向全局添加两个变量, 第一个是seajs,第二个是define

seajs引入文件的目录是seajs为根目录引入文件的

通常我们把seajs放最外层(根目录最后就放在最最最外层的文件夹里,这样引入其他文件的时候不易出错)

seajs对js敏感,所以可以省略 . js后缀

seajs本身就是一个对象,对象中包含了一些函数和对象,还有一些相关信息

seajs . use 是规定如何使用模块

seajs.config 用来配置模块

 

②定义模块

1 传递一个参数

define(xx)xx:可以是数字,字符串,数组,对象,Boolean

以上定义参数的形式,定义什么就会向外暴露什么

如果参数是一个函数:

函数中就会有三个参数:

require:引入其他模块的方法

exports:是向外暴露内容的对象

module:模块的相关信息

暴露的接口是由exports或者是module定义

经常使用的就是这一种

 

seajs暴露接口的方法

exports.xx module.exports.xx module.exports = fn return str return {} return fn this.xx = xx 不推荐this

优先级: return > module.exports > exports = this

 

2 传递两个参数

define(str,fn)

str:字符串 表示模块id

fn: 定义模块的函数

具有id 的模块,seajs.use不能直接加载

define(arr,fn)

arr: 表示模块的依赖集合

arr中是模块的文件地址,写入这里的模块文件都会被加载,但是模块不会被指定

fn:定义模块的函数 require, exports, module ,require 方法指定arr中加载进来的这些模块文件中的所有模块的id

 

3 传递三个参数

define(str ,arr ,fn)id(同常写当前文件的路径) 依赖集合(需要加载的模块的文件地址) 回调函数(require, exports, module)

④ 引入带有id的模块

引入带有id的模块:

1 在依赖集合中加载模块文件

2 使用require指定模块的id (可以是字符串和数组)

require(“ID”, fn)requirejs中不可以使用字符串的形式

require([ “ID” ], fn)推荐,这个数组方法和requirejs一样

 

每个模块文件最终都会有一个id

如果一个模块文件中,有两个匿名的模块,以下面模块为准。

如果一个模块文件中, 有两个相同id的模块,是以第一个为准

如果一个模块文件中, 有多个不同id的模块,那么以require指定的id为准

⑤ seajs.use方法

seajs.use方法有两种使用方式

1 seajs.use(str, fn)

str: 模块的文件地址(表示引入了一个模块文件,通常是入口文件)

fn:回调函数,函数中的参数就是前面引入模块文件向外暴露的功能

 

2 seajs.use(arr , fn)

arr: 模块的依赖集合

fn: 回调函数,函数中的参数就是前面引入模块文件向外暴露的功能一一对应的

 

⑥配置seajs seajs插件

我们使用seajs.config方法来配置信息

配置:是框架本身就有的功能,只是被隐藏了,需要开启,所以要配置

插件:本身没有这个功能,只是别人实现了,需要引入文件才能使用

 

1 alias 用来简化文件用,如果文件名称过长,我们用这个简化

seajs.config({ alias: { "m" : "modules/js/jquery-1.7.2" } })

 

2 paths 用来简化路径 (paths只能用来简化路径)

seajs.config({ paths: { "m" : "modules" } })

3 map 批量处理文件,值是一个二维数组

数组中的第一个成员表示修改后的文件,第二个成员表示匹配的文件

// 使用config进行配置 seajs.config({ // map map: [ // [".js", ".min.js"] ["jquery.js", "jquery.min.js"] ] }) // 引入模块文件 seajs.use("modules/js/jquery", function(jq) { console.log(jq) }) // 这里不会影响main.js的引入 seajs.use("modules/main", function(main) { 

4 vars 处理路径不能拼接的问题

seajs.config({ paths: { "j" : "jquery" } }) var jq = require("modules/js/{j}-1.7.2");

 

5 base 改变根目录 (常用)

seajs.config({ paths: { base: "modules" } })

插件

css插件

第一步在seajs文件后面引入seajs-css.js插件

第二步引入css文件即可

注意: 引入的css文件一定不能省略.css后缀, seajs对js敏感, 对css不敏感

  

 

预加载插件(比较重要)

第一步在seajs文件之后引入seajs-preload.js插件

第二步配置preload

值是一个数组,数组中的成员就是要预先加载的文件(加载时间实在use方法之后,模块加载之前去执行,所以预加载的配置我们一般要放在最前面

// 配置preload seajs.config({ preload: ["jquery-1.7.2.js"] }) seajs.use("main", function() { console.log($); })

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219348.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午10:46
下一篇 2026年3月17日 下午10:47


相关推荐

  • 在 pycharm中安装pytorch

    在 pycharm中安装pytorch参考文章:在pycharm中安装pytorch:https://blog.csdn.net/weixin_43183872/article/details/83473009torch包在pycharm里面的导入问题:https://blog.csdn.net/qq_31187803/article/details/79601643…

    2022年8月25日
    9
  • 什么是差分数组?「建议收藏」

    什么是差分数组?「建议收藏」问题背景如果给你一个包含5000万个元素的数组,然后会有频繁区间修改操作,那什么是频繁的区间修改操作呢?比如让第1个数到第1000万个数每个数都加上1,而且这种操作时频繁的。此时你应该怎么做?很容易想到的是,从第1个数开始遍历,一直遍历到第1000万个数,然后每个数都加上1,如果这种操作很频繁的话,那这种暴力的方法在一些实时的系统中可能就拉跨了。因此,今天的主角就出现了——差分数组。…

    2022年4月28日
    46
  • 600、000、002、200、300、400等开头的股票代表什么?

    600、000、002、200、300、400等开头的股票代表什么?600 开头的股票是上证 A 股 属于大盘股 其中 6006 开头的股票是最早上市的股票 6016 开头的股票为大盘蓝筹股 900 开头的股票是上证 B 股 000 开头的股票是深证 A 股 001 002 开头的股票也都属于深证 A 股 其中 002 开头的股票是深证 A 股中小企业股票 200 开头的股票是深证 B 股 300 开头的股票是创业板股票 400 开头的股票是三板市场股票 另外

    2026年3月18日
    2
  • 安卓全机型免Root卸载系统预装软件的方法

    安卓全机型免Root卸载系统预装软件的方法前言今天又是充满希望的一天 我们都知道 手机应用分为用户应用与系统应用 其中系统应用一般是手机的关键应用 不能随便卸载但是目前手机厂商都会在系统应用中添加一些像小说 音乐 商城 运动等自家的产品 这些不但会占用存储空间 还会后台启动占用运行空间 造成手机卡顿 即使我们不想用也卸载不了 就非常难受今天与大家分享一个不用 Root 也可以卸载这些系统应用的工具 使用非常简单 但一定要谨慎 不要手滑卸载了一些像电话短信之类的关键应用 那样手机就变砖了 预装软件卸载工具链接 https u9baok

    2026年3月19日
    1
  • ctf-web:关于文件上传漏洞的深入研究[通俗易懂]

    ctf-web:关于文件上传漏洞的深入研究[通俗易懂]上次我们研究了关于文件上传的漏洞,这次我们研究的内容属于上节课的补充内容,关于文件上传的绕过与防御.怎么说呢,算是一种锻炼吧.因为下个月有个awd的比赛,因此最近会经常发一些关于web的内容.其实我还是挺慌的,因为以前参加的都是ctf线上赛,而且我做的都是逆向这个方面的,然而这次突然来了个web,搞得我有点懵.web也是最近才开始研究的,所以写的可能不尽人意,希望各位大佬看看就好,不喜勿喷.一.实验环境我们这次的实验依然用的是上次的网站和phpstudy.我发在了下面.1.upload-f.

    2022年7月15日
    15
  • Fragstats3.4 景观指数计算以及导出至ArcGis详细步骤

    Fragstats3.4 景观指数计算以及导出至ArcGis详细步骤1 环境变量设置 设置了以后打开 Fragstats 后标题栏才会显示 enabled 否则显示 disabled 打开 ArcGis10 0 的 Bin 文件夹 将整个目录路径复制下来 打开我的电脑 属性 高级 环境变量 在系统变量里新建一个系统变量 变量名为 path 将刚刚复制的路径粘贴到变量值的文本框里 ok 2 运行 Fragstats3 4 注意 Fragstats3 4

    2026年3月17日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号