参考:https://www.jianshu.com/p/ebdf2233e3fe

1. seajs页面引入

index.html

思路:首先引入sea.js文件,然后通过seajs.use加载main.js文件

<!doctype html>
<html>
<head><meta charset="utf-8"><title>Hello</title>
</head>
<body>
<h1 id="title">seajs demo</h1>
<h1 id="content">I am content</h1>
<script src="https://cdn.bootcss.com/seajs/3.0.3/sea.js"></script>
<script>seajs.use('./main.js');//同级目录
// seajs.use('../main.js');//不同级目录
</script>
</body>
</html>

main.js

思路:define()用来定义模块文件。用main.js修改id为title的标签的文本内容

define(function(require,exports,module) {var title= document.getElementById('title');title.innerHTML = "yes it works"
})

页面输出:yes it works

2.模块文件引入

新建change.js

define(function (require, exports, module) {var textContent = 'yes it works';exports.text = textContent;//or//module.exports = {//text: textContent//}
})

修改main.js

思路:change模块输出一个text变量,在main中引用

define(function (require, exports, module) {var change = require('./change.js'); //同级目录,通过require将change模块的输出对象赋值给change变量var title = document.getElementById('title');title.innerHTML = change.text; //将对象的text属性赋值给节点的文本值
)}

页面输出:yes it works

3.别名设置

修改index.html

思路:引入一个模块要写他的相对路径,可以给它取个别名,在seajs.use()上面加入一段代码,通过config中alias给'./change.js'设置别名change,现在main中引用change模块就可以直接写成这样了var change = require('change')

<!doctype html>
<html>
<head><meta charset="utf-8"><title>Hello</title>
</head>
<body>
<h1 id="title">seajs demo</h1>
<h1 id="content">I am content</h1>
<script src="https://cdn.bootcss.com/seajs/3.0.3/sea.js"></script>
<script>seajs.config({alias:{'change':'./change.js'//同级目录}});seajs.use('./main.js');//同级目录// seajs.use('../main.js');//不同级目录
</script>
</body>
</html>

4.模块调用

修改change.js

思路:模块中定义了一个init方法,随机返回数组中的一条

define(function (require, exports, module) {var init= function() {var textContent = ['yes it works','seajs demo','it is a lucky day','wish this help you','thank you for reading'];var index = Math.floor(Math.random()*textContent.length);return textContent[index];}module.exports = {init:init}
})

修改main.js

思路:因为index.html已经用了别名设置,所以require里直接用别名即可

define(function (require, exports, module) {var changeText = require('change');var title = document.getElementById('title');title.innerHTML = changeText.init();
})

5.第三方文件引用

jQuery.js

思路:下载一个jq源文件,把代码复制到以下源码处,另其模块化,能被外部调用

define(function (require, exports, module) {//jquery 源码
})

修改index.html

思路:设置别名,使其他地方可以使用

<!doctype html>
<html>
<head><meta charset="utf-8"><title>Hello</title>
</head>
<body>
<h1 id="title">seajs demo</h1>
<!--<script src="https://cdn.bootcss.com/seajs/3.0.3/sea.js"></script>-->
<script src="seajs/2.2.0/sea.js"></script>
<script>seajs.config({alias:{'change':'./change.js','jquery':'./jq.js'}});seajs.use('./main.js');//同级目录// seajs.use('../main.js');//不同级目录
</script>
</body>
</html>

修改main.js

思路:在main里引入jq代码并且使用

define(function (require, exports, module) {var change = require('change');// var title = document.getElementById('title');// title.innerHTML = change.init();var $ = require('jquery');$('#title').text(change.init());
})

6.回调函数

修改main.js

思路:seajs.use([module],callback),加载一个或多个模块,并执行回调函数

define(function (require, exports, module) {var change = require('change');var $ = require('jquery');var showText = function () {$('#title').text(change.init());};exports.showText = showText;
})

修改index.html

思路:增加回调函数。加载两个模块(main、jQuery),把他们的输出对象传给main和$变量,通过点击事件,调用main中的showText方法,showText方法调用change 的init方法

<!doctype html>
<html>
<head><meta charset="utf-8"><title>Hello</title>
</head>
<body>
<h1 id="title">seajs demo</h1>
<!--<script src="https://cdn.bootcss.com/seajs/3.0.3/sea.js"></script>-->
<script src="seajs/2.2.0/sea.js"></script>
<script>seajs.config({alias:{'change':'./change.js','jquery':'./jq.js'}});// seajs.use('./main.js');//同级目录// seajs.use('../main.js');//不同级目录seajs.use(['main','jquery'],function(main,$) {$('#title').after('<button id="show">showText</button>');$('#show').on('click',function() {main.showText()})});
</script>
</body>
</html>

7.路径问题

·  ./是表示当前目录;../是上级目录;

·  seajs.config 里alias的别名设置只是给路径取个别名,减少书写;

·  seajs里主要两个用到路径的地方:一个是seajs.use();一个是require()。

·  base路径是seajs文件所在目录

Seajs使用实例入门介绍相关推荐

  1. linux内核驱动模块开发步骤及实例入门介绍

    最近在搞一个linux的项目,其中主要是在编写一些应用模块,对内核及其驱动模块涉及很少,遇到了一些驱动模块的问题时,临时查了些资料,大致了解了一下驱动模块开发的基本步骤和常规步骤,并从网上也收集到了一 ...

  2. Seajs使用实例入门

    1.在项目中引入sea.js,其中内容为: var BASEPATH="/TestSea"; !function(a,b){function c(a){return functio ...

  3. [翻译][1.4.2]Flask-Admin入门介绍

    为什么80%的码农都做不了架构师?>>>    #Flask-Admin入门介绍 ##让我们荡起双桨 初始化 Introduction To Flask-Admin Getting ...

  4. 微信公众平台开发教程(四) 实例入门:机器人(附源码)

    微信公众平台开发教程(四) 实例入门:机器人(附源码) 上一篇文章,写了基本框架,可能很多人会觉得晕头转向,这里提供一个简单的例子来予以说明,希望能帮你解开谜团. 一.功能介绍 通过微信公众平台实现在 ...

  5. Spring Cloud 全家桶 入门介绍

    Spring Cloud 全家桶 入门介绍 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的一些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌 ...

  6. 分布式事物框架--EasyTransaction的入门介绍

    分布式事物框架--EasyTransaction的入门介绍 柔性事务,分布式事务,TCC,SAGA,可靠消息,最大努力交付消息,事务消息,补偿,全局事务,soft transaction, distr ...

  7. (XGBoost)提升树入门介绍(Inrtoduction to Boosted Trees)

    提升树入门介绍(Inrtoduction to Boosted Trees) Author : Jasper Yang School : Bupt 这是一篇翻译文,翻译的内容是 XGBoost 官网的 ...

  8. 区块链及以太坊入门介绍

    一.区块链入门介绍 阮一峰写的挺好的:   http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html 区块链技术:是一个去中心化的 ...

  9. Google-Guice入门介绍

    一. 概述 Guice是一个轻量级的DI框架.本文对Guice的基本用法作以介绍. 本文的所有例子基于Guice 3.0 本文的很多代码来源于Guice主页:http://code.google.co ...

最新文章

  1. 你需要知道的加密算法
  2. C++ Primer 有感(类)
  3. mysql server 5.6root_root密码mysqlMySQL-5.6.24免安装版配置方法
  4. ccfb类会议有哪些_CCF 计算机会议排名
  5. 轻松掌握开发必会的docker套路-yaml语法与docker compose.yml
  6. gdb 10.2的安装
  7. c语言100位整数变量声明_C ++程序动态声明一个整数变量并打印其内存地址
  8. diy配置程序php,poscmsDiy字段之文件类型设计指南
  9. C#—接口和抽象类的区别?
  10. Adb命令笔记 --菜鸟的笔记
  11. 【python】多进程、多线程、序列
  12. 前端pdf禁止下载功能
  13. 浏览器主流内核分析,浏览器版本过低升级方法
  14. 打散线条lisp_《湘源修建性详细规划CAD系统》用户使用手册.doc
  15. 5个免费、优质视频素材网站,可商用
  16. 怎样用计算机玩CS,电脑建立局域网玩cs的三种方法
  17. 关于JFrame添加背景图片,setbounds的小知识
  18. mysql 数据库1
  19. android系统目录和作用是什么意思,安卓Android手机系统内文件夹目录解释
  20. 邮箱的规则、正则表达式【亲测有效】

热门文章

  1. 【XSY3330】地中海气候(思维)
  2. Python3爬虫爬取房价进行房价预测-张敏-专题视频课程
  3. 工业互联网蓬勃发展,出奇才能制胜
  4. 前端脚手架开发(1)
  5. 我们做了一款AI口语外教,寻找测试用户
  6. 西安市高校计算机教师招聘,西安经开第二学校2020年招聘教职工岗位表
  7. 算法之几个常见的经典最短路径算法
  8. Touch_GUI(基于STM32触摸屏)
  9. STM32处理器输入捕获分析
  10. 用Python深度学习来快速实现图片的风格迁移