seajs的使用

写在前面

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的源码 

})

 转载:http://www.cnblogs.com/zqzjs/p/5299450.html

时间: 2024-10-31 16:38:31

seajs的使用的相关文章

LABjs、RequireJS、SeaJS 哪个最好用?为什么?

LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行.LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化.LABjs 是一个文件加载器. RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单自然. 模块加载器一般可降级为文件加载器用,因此使用 RequireJS 和 SeaJS,也可

Seajs是什么及其优缺点&amp;amp;如何使用?

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

seajs的常用api简易文档

目前使用sea.js的公司越来越多, 比如朋友网,阿里巴巴,淘宝网,百姓网,支付宝,有道云笔记等.模块化的javascript开发带来了可维护,可扩展性,尤其在多人协作开发的时候不用再担心文件依赖和函数命名冲突的问题,有点扯远了,下面罗列了seajs常用的api和代码示例 seajs.config seajs.use seajs.cache seajs.reslove seajs.data 常见问题 关于模块标识 关于路径 seajs.config  alias 别名配置,配置之后可在模块中使用

RequireJS、SeaJS的区别

引用自知乎(卢勃) 1. RequireJS的异步模块加载迎合了浏览器端JS程序员固有的异步思维,学习成本低 -------------------------------- Sea.js的主页中写到: Sea.js 遵循 CMD 规范,可以像 Node.js 一般书写模块代码 依赖的自动加载.配置的简洁清晰,可以让我们更多地享受编码的乐趣 两年前,我看到Sea.js这样的自我描述,第一感觉是:为什么浏览器的JS编程和NodeJS相仿就是优雅呢? 那么,来讨论RequireJS和Sea.js的学

SeaJS入门教程系列之完整示例(三)

 这篇文章主要介绍了SeaJS入门教程系列之完整示例,演示了一个完整的SeaJS开发例子,需要的朋友可以参考下 一个完整的例子 上文说了那么多,知识点比较分散,所以最后我打算用一个完整的SeaJS例子把这些知识点串起来,方便朋友们归纳回顾.这个例子包含如下文件:   1.index.html--主页面. 2.sea.js--SeaJS脚本. 3.init.js--init模块,入口模块,依赖data.jquery.style三个模块.由主页面载入. 4.data.js--data模块,纯json

SeaJS入门教程系列之使用SeaJS(二)

 这篇文章主要介绍了SeaJS入门教程系列之使用SeaJS,着重介绍了SeaJS的使用方法.关键方法的使用等,需要的朋友可以参考下 下载及安装   要在项目中使用SeaJS,你所有需要做的准备工作就是下载sea.js然后放到你项目的某个位置. SeaJS项目目前托管在GitHub上,主页为 https://github.com/seajs/seajs/ .可以到其git库的build目录下下载sea.js(已压缩)或sea-debug.js(未压缩). 下载完成后放到项目的相应位置,然后在页面中

SeaJS入门教程系列之SeaJS介绍(一)

 这篇文章主要介绍了SeaJS入门教程,讲述了SeaJS的由来,JavaScript传统开发模式和模块化开发的对比,需要的朋友可以参考下 前言 SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载.SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的

Seajs的学习笔记

 这篇文章主要介绍了Seajs的相关知识和和学习心得,适合刚接触SeaJS的同学,需要的朋友可以参考下 1.简介   Seajs,一个Web模块加载框架,追求简单.自然的代码书写和组织方式,:Sea.js 遵循 CMD 规范,模块化JS代码.依赖的自动加载.配置的简洁清晰,可以让程序员更多地专注编码.   2.优缺点   优点: 1).提高可维护性. 2).模块化编程. 3).动态加载,前端性能优化   缺点: 1).学习文档偏少且混乱,会更改团队使用JS的编写习惯,必须使用模块化编程. 2).

LABjs、RequireJS、SeaJS的区别

这篇文章主要介绍了LABjs.RequireJS.SeaJS的区别.JS文件加载器.JS块加载器等知识,需要的朋友可以参考下 一.LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行.LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化.LABjs 是一个文件加载器. 二.RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 Ja

把jQuery的类、插件封装成seajs的模块的方法

 这篇文章主要介绍了把jQuery的类.插件封装成seajs的模块的方法,需要的朋友可以参考下 注:本文使用的seajs版本是2.1.1 一.把Jquery封装成seajs的模块    代码如下:define(function () {      //这里放置jquery代码 把你喜欢的jquery版本放进来就好了      return $.noConflict(); });     调用方法: 这样引进就可以像以前一样使用jquery    代码如下:define(function (req