在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 相关文章推荐
使用javascript为网页增加夜间模式
Jan 26 Javascript
使用jquery写个更改表格行顺序的小功能
Apr 29 Javascript
JavaScript实现简单Tip提示框效果
Apr 20 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 Javascript
详谈ES6中的迭代器(Iterator)和生成器(Generator)
Jul 31 Javascript
解决vue点击控制单个样式的问题
Sep 05 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
Jun 17 Javascript
JS常用排序方法实例代码解析
Mar 03 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
Jun 29 Javascript
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
nginx 设置多个站跨域
2021/03/09 Servers
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
python实现基于两张图片生成圆角图标效果的方法
2015/03/26 Python
python通过索引遍历列表的方法
2015/05/04 Python
python实现的简单窗口倒计时界面实例
2015/05/05 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
对于Python中RawString的理解介绍
2016/07/07 Python
Python适配器模式代码实现解析
2019/08/02 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
EJB3.1都有哪些改进
2012/11/17 面试题
商务考察邀请函范文
2014/01/21 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
历史博物馆观后感
2015/06/05 职场文书
Hive常用日期格式转换语法
2022/06/25 数据库
python playwrigh框架入门安装使用
2022/07/23 Python