在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 相关文章推荐
让innerHTML的脚本也可以运行起来
Jul 01 Javascript
Javascript里使用Dom操作Xml
Jan 22 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
Aug 23 Javascript
Flexigrid在IE下不显示数据的有效处理方法
Sep 04 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
Aug 03 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
Feb 17 Javascript
浅谈angular4 ng-content 中隐藏的内容
Aug 18 Javascript
微信小程序:数据存储、传值、取值详解
May 07 Javascript
js实现旋转的星空效果
Nov 01 Javascript
JS实现轮播图效果
Jan 11 Javascript
js里面的变量范围分享
Jul 18 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
ThinkPHP 404页面的设置方法
2015/01/14 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
js自带函数备忘 数组
2006/12/29 Javascript
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
python字符串编码识别模块chardet简单应用
2015/06/15 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
Python 画出来六维图
2019/07/26 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
python基于opencv实现人脸识别
2021/01/04 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
大学自主招生自荐信范文
2014/02/26 职场文书
诚信承诺书范文
2014/03/27 职场文书
个人剖析材料范文
2014/09/30 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
电工实训报告总结
2014/11/05 职场文书
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs