写在前面

seajs是什么?

  1. Seajs是一个js文件加载器。
  2. 遵循 CMD 规范模块化开发,依赖的自动加载、配置的简洁清晰。
  3. 用于Web开发的模块加载工具,提供简单、极致的模块化体验

一:使用

文件目录:

demo_1.html

<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="seajs/sea.js"></script>
<script src="seajs-config.js"></script>
</head>
<body>
<script>
//seajs.use(['./model.js','./model_2.js']) //没有使用别名的写法
seajs.use(['m','m_2']) //使用base路径的写法
</script>
</body>
</html>

**注解:

seajs.use:用来在页面中加载一个或多个模块。

seajs-config.js文件

seajs.config({
//两种写法,一个是paths,一个是base
/*paths:{
'baseUrl':'.'
},
alias:{
'm':'baseUrl/model.js',
'm_2':'baseUrl/model_2.js'
}*/
base:"./",
alias:{
'm':'model.js',
'm_2':'model_2.js'
}
})

**注解:

base:是sea.js的基础路径,也就是sea.js的路径。

paths:当目录比较深,或需要跨目录调用模块时,可以使用paths来简化书写。

如:

seajs.config({
paths: {
'gallery': 'https://a.alipayobjects.com/gallery',
'app': 'path/to/app',
...
}
}); //模块中
define(function(require, exports, module) { var underscore = require('gallery/underscore');
// 加载的是 https://a.alipayobjects.com/gallery/underscore.js var biz = require('app/biz');
// 加载的是 path/to/app/biz.js });

paths 配置可以结合 alias 配置一起使用,让模块引用非常方便。

在使用中路径问题出错了。

路径问题:https://github.com/seajs/seajs/issues/258 seajs都有相关解释。

alias:别名配置,用变量表示文件,解决路径层级过深和实现路径映射

model.js文件:

define(function(){
alert("AAA")
})

**注解:

define:用来定义一个模块。

model_2.js文件:

define(function(){
alert("BBB")
})

结果:根据两个文件在seajs中的加载顺序,分别弹出AAA与BBB。

二:使用

页面:

<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="seajs/sea.js"></script>
<script src="seajs-config.js"></script>
</head>
<body>
<div></div>
</body>
<script>
seajs.use(['jquery','m_3'],function($,m_3){
//这里是callback
//$对应jquery,在回调中使用的别名
  //调用接口变量
alert(m_3.msg);
})
</script>
</html>

seajs-config.js文件

seajs.config({
/*paths:{
'baseUrl':'.'
},
alias:{
'm':'baseUrl/model.js',
'm_2':'baseUrl/model_2.js'
}*/
base:"./",
alias:{
'jquery':'jquery.js',
'm':'model.js',
'm_2':'model_2.js',
'm_3':'model_3.js' } })

model_3.js文件:

define(function(require, exports, module){
var $=require('jquery');
$("div").text("模块中调用jquery操作dom");
exports.msg="对外接口,变量a";
})

结果:

**注解:

require:用来获取指定模块的接口。

exports:用来在模块内部对为提供接口。

三:jQuery在seajs中的使用

需要使用seajs来定义一下,包装成一个模块。

define(function(){

    //jquery源代码

    return $.noConflict();
});

四:有时候,我们添加前端框架的时候,需要引入css文件时。

以bootstrap为例:两个文件,bootstrap.js与bootstrap.css文件。

bootstrap.js文件做一下的修改即可。

define(function(require, exports, module){
require('bootstrap.css'); //里面是bootstrap.js的源码 })

seajs的使用的更多相关文章

  1. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  2. 初学seaJs模块化开发,利用grunt打包,减少http请求

    原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...

  3. JS模块化开发:使用SeaJs高效构建页面

    一.扯淡部分 很久很久以前,也就是刚开始接触前端的那会儿,脑袋里压根没有什么架构.重构.性能这些概念,天真地以为前端===好看的页面,甚至把js都划分到除了用来写一些美美的特效别无它用的阴暗角落里,就 ...

  4. 用spm2构建seajs项目的过程

    前言 Javascript模块化规范有CommonJs规范,和主要适用于浏览器环境的AMD规范,以及国内的CMD规范,它是SeaJs遵循的模块化规范.因为以前项目中用SeaJs做过前端的模块管理工具, ...

  5. jquery插件封装成seajs模块

    jquery直接在html中引入. jquery插件修改为: define(function (require, exports, moudles) { return function (jquery ...

  6. 快速上手seajs——简单易用Seajs

    快速上手seajs——简单易用Seajs   原文  http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...

  7. seajs学习一天后的总结归纳

    公司项目最近需要将js文件迁移到seajs来进行模块化管理,由于我以前主要接触模块化开发是接触的AMD规范的requireJS,没有接触过CMD规范,而且在实际项目中还没有用过类似技术.于是,我非常兴 ...

  8. RequireJS与SeaJS模块化加载示例

    web应用越变的庞大,模块化越显得重要,尤其Nodejs的流行,Javascript不限用于浏览器,还用于后台或其他场景时,没有Class,没有 Package的Javascript语言变得难以管理, ...

  9. 新手 gulp+ seajs 小demo

    首先,不说废话,它的介绍和作者就不在多说了,网上一百度一大堆: 我在这里只是来写写我这2天抽空对seajs的了解并爬过的坑,和实现的一个小demo(纯属为了实现,高手请绕道); 一.环境工具及安装 1 ...

随机推荐

  1. javascript中的this与函数讲解

    前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大家可以认为全局作用域其实就是Window函数的函数作用域,我们编写的js代码, ...

  2. [原]CentOS7.2部署node-mapnik

    转载请注明表作者think8848及出处(http://think8848.cnblogs.com) node-mapnik依赖项中要求g++ >= 5, toolchain (>= GL ...

  3. Apache Ignite之集群应用测试

    集群发现机制 在Ignite中的集群号称是无中心的,而且支持命令行启动和嵌入应用启动,所以按理说很简单.而且集群有自动发现机制感觉对于懒人开发来说太好了,抱着试一试的心态测试一下吧. 在Apache ...

  4. C#学习资源

    # 视频 C#程序设计 Cousera(推荐) # 文档 C#教程 MSDN Microsoft API 和参考目录

  5. HTML 获取屏幕、浏览器、页面的高度宽度

    本篇主要介绍Web环境中屏幕.浏览器及页面的高度.宽度信息. 目录 1. 介绍:介绍页面的容器(屏幕.浏览器及页面).物理尺寸与分辨率.展示等内容. 2. 屏幕信息:介绍屏幕尺寸信息:如:屏幕.软件可 ...

  6. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  7. 编写高质量代码:改善Java程序的151个建议(第8章:异常___建议114~117)

    建议114:不要在构造函数中抛出异常 Java异常的机制有三种: Error类及其子类表示的是错误,它是不需要程序员处理也不能处理的异常,比如VirtualMachineError虚拟机错误,Thre ...

  8. 【干货分享】流程DEMO-合同会审表

    流程名: 合同会审表  业务描述: 合同的审批及签订  流程相关文件: 流程包.xml 事务呈批表业务服务.xml 事务呈批表主数据.xml  流程说明: 1.此流程必须先进行事务呈批表流程的配置才可 ...

  9. (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    原文地址:  http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...

  10. Mysql 忘记root密码处理办法

    一.更改my.cnf配置文件 1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 2.在[mysqld]下添加skip-grant-t ...