在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 相关文章推荐
体验js中splice()的强大(插入、删除或替换数组的元素)
Jan 16 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
Mar 12 Javascript
JS生成不重复随机数组的函数代码
Jun 10 Javascript
jQuery检测滚动条是否到达底部
Dec 15 Javascript
JS实现间歇滚动的运动效果实例
Dec 22 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
Jan 11 Javascript
JS实现旋转木马式图片轮播效果
Jan 18 Javascript
JS实现图片点击后出现模态框效果
May 03 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
Dec 09 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
Sep 14 Javascript
jquery.pager.js分页实现详解
Jul 29 jQuery
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
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
详解ES6中的let命令
2020/04/05 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Djang中静态文件配置方法
2015/07/30 Python
python实现上传下载文件功能
2020/11/19 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
python编写弹球游戏的实现代码
2018/03/12 Python
python实现按行分割文件
2019/07/22 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
基于Python实现粒子滤波效果
2020/12/01 Python
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
机电系毕业生求职信
2014/07/11 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
政府会议通知范文
2015/04/15 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python