使用requirejs模块化开发多页面一个入口js的使用方式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用requirejs模块化开发多页面一个入口js的使用方式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2169字,纯文字阅读大概需要4分钟。
内容图文
![使用requirejs模块化开发多页面一个入口js的使用方式](/upload/InfoBanner/zyjiaocheng/344/a171069fabb042b0afeaa291a6ec3166.jpg)
描述
知道requirejs的都知道,每一个页面需要进行模块化开发都得有一个入口js文件进行模块配置。但是现在就有一个很尴尬的问题,如果页面很多的话,那么这个data-main对应的入口文件就会很多。理论这样其实也没什么,但是到后面用grunt进行合并压缩就会有很多入口js,虽然这个入口js都把配置的模块内容都压缩到里面了,但是各个入口合并压缩后的文件中其实都有很多重合的代码,所以考虑到这个就想到把所以的入口文件都统一了,使用一个,到时候用grunt合并压缩也只有这么一个入口文件,也很方便。
实现原理
1.页面引入requirejs 和 设置id和当前页面信息的属性
<script src="/res/js/require.js" data-main="/res/js/require.config" id="current-page" current-page ="news" target-module="/res/js/module/newsCtrl" defer async="true" ></script>
2、编写require.config.js 根据不同的页面去初始化不同的页面信息
/** * 1、所有页面使用公共的require配置 * 2、根据current-page去加载相应地模块,不需要的模块不要去加载 * 3、每个模块都要按约定去对外暴露一个init的初始化方法,用于页面信息加载时间监听 * */ require.config({ urlArgs: "ver=1.0_" + (new Date).getTime(), paths: { "jquery": "/res/js/base/jquery-1.11.3.min", "vue":'/res/js/base/vue.min', "common": "/res/js/widgets/common" }, shim: { 'scroll': { deps: ['jquery'], exports: 'jQuery.fn.scroll' }, 'vue':{ exports:'vue' }, 'common':['jquery'] } }); require(["jquery"], function ($) { require(["common"], function (common) { var currentPage = $("#current-page").attr("current-page"); var targetModule = $("#current-page").attr("target-module"); if (targetModule) { // 页面加载完毕后再执行相关业务代码比较稳妥 $(function () { require([targetModule], function (targetModule) { // 不要在这里写业务代码 //全部统一调用init方法 //也就是每个模块都暴露一个init方法用于事件监听,页面内容加载等 targetModule.init(currentPage); }); }); return; } }); });
3、定义模块,实现初始化init方法进行事件监听和页面信息初始化
define(['jquery', "common"], function ($, common) { var newCtrl = {}; newCtrl.init = function (page) { common.info("开始初始化页面信息"); }; newCtrl.login = function () {}; return newCtrl; });
以上所述是小编给大家介绍的使用requirejs模块化开发多页面一个入口js的使用方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
内容总结
以上是互联网集市为您收集整理的使用requirejs模块化开发多页面一个入口js的使用方式全部内容,希望文章能够帮你解决使用requirejs模块化开发多页面一个入口js的使用方式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。