Seajs使用实例入门介绍
参考: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使用实例入门介绍相关推荐
- linux内核驱动模块开发步骤及实例入门介绍
最近在搞一个linux的项目,其中主要是在编写一些应用模块,对内核及其驱动模块涉及很少,遇到了一些驱动模块的问题时,临时查了些资料,大致了解了一下驱动模块开发的基本步骤和常规步骤,并从网上也收集到了一 ...
- Seajs使用实例入门
1.在项目中引入sea.js,其中内容为: var BASEPATH="/TestSea"; !function(a,b){function c(a){return functio ...
- [翻译][1.4.2]Flask-Admin入门介绍
为什么80%的码农都做不了架构师?>>> #Flask-Admin入门介绍 ##让我们荡起双桨 初始化 Introduction To Flask-Admin Getting ...
- 微信公众平台开发教程(四) 实例入门:机器人(附源码)
微信公众平台开发教程(四) 实例入门:机器人(附源码) 上一篇文章,写了基本框架,可能很多人会觉得晕头转向,这里提供一个简单的例子来予以说明,希望能帮你解开谜团. 一.功能介绍 通过微信公众平台实现在 ...
- Spring Cloud 全家桶 入门介绍
Spring Cloud 全家桶 入门介绍 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的一些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌 ...
- 分布式事物框架--EasyTransaction的入门介绍
分布式事物框架--EasyTransaction的入门介绍 柔性事务,分布式事务,TCC,SAGA,可靠消息,最大努力交付消息,事务消息,补偿,全局事务,soft transaction, distr ...
- (XGBoost)提升树入门介绍(Inrtoduction to Boosted Trees)
提升树入门介绍(Inrtoduction to Boosted Trees) Author : Jasper Yang School : Bupt 这是一篇翻译文,翻译的内容是 XGBoost 官网的 ...
- 区块链及以太坊入门介绍
一.区块链入门介绍 阮一峰写的挺好的: http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html 区块链技术:是一个去中心化的 ...
- Google-Guice入门介绍
一. 概述 Guice是一个轻量级的DI框架.本文对Guice的基本用法作以介绍. 本文的所有例子基于Guice 3.0 本文的很多代码来源于Guice主页:http://code.google.co ...
最新文章
- 你需要知道的加密算法
- C++ Primer 有感(类)
- mysql server 5.6root_root密码mysqlMySQL-5.6.24免安装版配置方法
- ccfb类会议有哪些_CCF 计算机会议排名
- 轻松掌握开发必会的docker套路-yaml语法与docker compose.yml
- gdb 10.2的安装
- c语言100位整数变量声明_C ++程序动态声明一个整数变量并打印其内存地址
- diy配置程序php,poscmsDiy字段之文件类型设计指南
- C#—接口和抽象类的区别?
- Adb命令笔记 --菜鸟的笔记
- 【python】多进程、多线程、序列
- 前端pdf禁止下载功能
- 浏览器主流内核分析,浏览器版本过低升级方法
- 打散线条lisp_《湘源修建性详细规划CAD系统》用户使用手册.doc
- 5个免费、优质视频素材网站,可商用
- 怎样用计算机玩CS,电脑建立局域网玩cs的三种方法
- 关于JFrame添加背景图片,setbounds的小知识
- mysql 数据库1
- android系统目录和作用是什么意思,安卓Android手机系统内文件夹目录解释
- 邮箱的规则、正则表达式【亲测有效】