在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 相关文章推荐
Three.js源码阅读笔记(光照部分)
Dec 27 Javascript
jQuery对象和Javascript对象之间转换的实例代码
Mar 20 Javascript
jQuery+CSS3实现3D立方体旋转效果
Nov 10 Javascript
jQuery层次选择器用法示例
Sep 09 Javascript
微信小程序 地图定位简单实例
Oct 14 Javascript
Ajax的概述与实现过程
Nov 18 Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 Javascript
Bootstrap表单控件使用方法详解
Jan 11 Javascript
JavaScript Date 知识浅析
Jan 29 Javascript
js实现多个倒计时并行 js拼团倒计时
Feb 25 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
Jun 25 Javascript
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
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 文件夹删除、php清除缓存程序
2009/08/25 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
js中的闭包学习心得
2018/02/06 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
Python数组条件过滤filter函数使用示例
2014/07/22 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
小学少先队活动方案
2014/02/18 职场文书
白岩松演讲
2014/05/21 职场文书
司机工作自我鉴定
2014/09/19 职场文书
2014年电厂工作总结
2014/12/04 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
优秀英文求职信范文
2015/03/19 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书
JavaScript canvas实现流星特效
2021/05/20 Javascript