时间:2021-05-26
简介:前端模块化开发日渐鼎盛,如何将零散的插件或者是普通的js脚本文件统一管理及引用,是众多开发者共同的目标。本人是从事.net开发的,最近对前端的一些东西特别的感兴趣,也会尝试的夹杂一点自己的想法,写一些小东西。东西不牛逼,但是感觉用起来还是方便那么一点的。
下面就展示一下简短的小代码。
中心思想:通过外部调用事先封装好的模块加载方法,传入参数(包括主目录及模块js或者css的目录 ),在程序运行的同时,会动态的将相应的css或者是js代码追加引用到head标签内,这样,就可以使用被引用的文件的样式或者方法啦。
源文件:
(function(req) { window._Req= req;})((function($) { var _factory = function() {}; //模块工厂 //docker _factory.prototype = { _origin: location.origin || location.protocol + "//" + location.host,//域名地址 _aim: null, _config: function(param) { var _default = { //默认参数 _coreDir: "", _moduleArr: [ ['', ''] ], //模块数组 }, _opt = {}; $.extend(_opt, _default); if (typeof param === 'object') $.extend(_opt, param); this._aim = _opt; this._load(); //加载模块 }, _load: function() { try { var _modules = this._aim._moduleArr, _core = this._aim._coreDir; _modules.forEach(function(_element) { _element.forEach(function(_ele) { var _index = _ele.lastIndexOf('.'), _moduleType = _ele.substring(_index + 1), _moduleDir = _core + '/' + _ele, _module = null; switch (_moduleType) { case 'js': _module = document.createElement('script'); _module.src = _moduleDir; break; case 'css': _module = document.createElement('link'); _module.href = _moduleDir; _module.rel = 'stylesheet'; break; default: console.error("对不起模块类型不匹配"); break; } document.head.appendChild(_module); }); }, this); } catch (ex) { throw ex; } } }; return new _factory(); //返回工厂})(jQuery))调用:
_Req._config({ _coreDir: "../jq-package", _moduleArr: [ ['js/ui-dialog.js', 'css/dialog.css'] ], //模块数组 });以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.Seajs简介Seajs,一个Web模块加载框架,追求简单、自然的代码书写和组织方式,:Sea.js遵循CMD规范,模块化JS代码。依赖的自动加载、配置的简
1.简介Seajs,一个Web模块加载框架,追求简单、自然的代码书写和组织方式,:Sea.js遵循CMD规范,模块化JS代码。依赖的自动加载、配置的简洁清晰,可
Require.js与Sea.js的区别相同之处RequireJS和Sea.js都是模块加载器,倡导模块化开发理念,核心价值是让JavaScript的模块化开发
用过vue-router都知道它可以实现模块js的懒加载,即只有当需要时才去加载对应模块的js脚本文件,以加速主页的显示。比如只有第一次用户点击某个“用户信息”
模块加载器的概念可能稍微接触过前端开发的童鞋都不会陌生,通过模块加载器可以有效的解决这些问题:JS文件的依赖关系。通过异步加载优化script标签引起的阻塞问题