在Html中使用Requirejs进行模块化开发实例详解


Posted in Javascript onApril 15, 2016

在前端模块化的时候,不仅仅是js需要进行模块化管理,html有时候也需要模块化管理。这里就介绍下如何通过requirejs,实现html代码的模块化开发。

如何使用requirejs加载html

Reuqirejs有一个text的插件,它可以读取指定文件的内容,读取到的内容就是文本。

如何下载text插件

第一种方法,可以通过npm下载:

npm install requirejs/text

第二种方法,也可以直接去官方github上面直接下载。

直接拷贝内容到text.js中即可。

如何安装text插件

在requirejs的main.js中配置text插件的依赖即可,跟jquery差不多,只要保证能通过正常的加载方式加载到它就行。

requirejs.config({
baseUrl: './',
paths: {
'text':path+'/require/text',
...
},
shim: {
...
}
});

也可以直接放在baseUrl里面。

如何使用text

在目标模块中,按照下面的语法即可:

define(function(require){
var html = require("text!html/test.html");
console.log(html);
});

或者

define(["text!html/test.html"],function(html){
console.log(html);
});

如何进行html的模块化开发?

看过上面你已经会使用text了,但是仍然不知道怎么组织前端代码。

举个栗子:

博客园的网站页面会根据上方的导航跳转到不同的页面。如果是在单页面中,很容易想到原始的做法是,导航的按钮对应不同的div,点击那个按钮,就显示与之对应的div;其他的div则隐藏掉。

那么,前端的代码可能会这样:

<html>
<body>
<nav>
导航按钮1、导航按钮2、导航按钮3
</nav>
<div style="display:block">按钮1对应的页面</div>
<div style="display:none">按钮2对应的页面</div>
<div style="display:none">按钮3对应的页面</div>
</body>
</html>

这样的代码会很杂乱...而且前端Html会很长...不利于维护。

那么有了reuqirejs的text插件以后,就可以这样了:

<html>
<body>
<nav>
导航按钮1、导航按钮2、导航按钮3
</nav>
<div id="target"></div>
</body>
</html>

然后在对应的模块中:

$('#target').html(require("text!目标按钮对应的页面.html"));

这样就随性多了吧!前端代码也可以跟着模块一起有效的管理了!

不过需要注意的是:这种方式会导致Jquery绑定的事件失效——所以一定要在html()方法后面,重新绑定下事件。

关于在Html中使用Requirejs进行模块化开发的相关知识就给大家介绍这么多,希望对大家有所帮助!

Javascript 相关文章推荐
CSS JavaScript 实现菜单功能 改进版
Dec 09 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
Apr 14 Javascript
JavaScript网页定位详解
Jan 13 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
Mar 05 Javascript
JS获取一个未知DIV高度的方法
Aug 09 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
Mar 13 Javascript
React-router 4 按需加载的实现方式及原理详解
May 25 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 jQuery
浅谈webpack打包过程中因为图片的路径导致的问题
Feb 21 Javascript
详解vue 数组和对象渲染问题
Sep 21 Javascript
VuePress 快速踩坑小结
Feb 14 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
Jun 28 Javascript
jQuery基于json与cookie实现购物车的方法
Apr 15 #Javascript
Window.Open打开窗体和if嵌套代码
Apr 15 #Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 #Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 #Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 #Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
Apr 15 #Javascript
jQuery遍历DOM元素与节点方法详解
Apr 14 #Javascript
You might like
PHP之COOKIE支持详解
2010/09/20 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
python获得一个月有多少天的方法
2015/06/04 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
关于廉洁的广播稿
2014/01/30 职场文书
销售队伍口号
2014/06/11 职场文书
销售岗位职责范本
2014/06/12 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
Python Pandas解析读写 CSV 文件
2022/04/11 Python
Docker部署Mysql8的实现步骤
2022/07/07 Servers