- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Seajs模块化开发思路(齐继超)精选
前端模块化开发
CMCCRMSRD-HZNewBusiness Dept . 2014.04.04 齐继超
—Seajs 模块化实践
传统的开发模式
根据页面功能来划分不同的业务区域
开发人员分别编写CSS,HTML,JS实现业务功能
最后将所有的业务组织起来,完善整个系统
业务划分
传统开发模式常见的问题
命名冲突
代码冗余
不易维护
无法协作
编码容易,维护不易,且行且珍惜
代码和我冲突了
这段代码可以复用吗
天啊,代码有一千多行
尝试解决的方案——组件化
定制编码规范
基础 UI 组件
丰富 JS 组件
精选第三方组件
CSS规范
编码规范
JS规范
UI 库
Reset
Layout
Form
Table
Msg
JS 组件
Tabs
Scrollup
Modal
Collspse
Tooltip
HTML规范
工程师规范
artDialog
精选第三方
Handlebars
omGrid
关注命名规则
快速搭建页面
常用组件复用
稳定高效
尝试解决的方案——组件化
组件使用方便
接口清晰易扩展
代码稳定质量高
我也要写组件
尝试解决的方案——组件库
JavaScript 规范
var org = {};
var org.Utils = {};var org.Utils.tabs=function(arr){
// 实现代码
}
JavaScript
.ui-tabs { border:1px solid #ccc }
.ui-tabs-light { border:1px solid #d9d9d9 }
.ui-tabs-title { border-bottom:1px solid #ccc; }
.ui-tabs-title h3 { border-bottom:1px solid #eee; }
CSS
CSS 规范
尝试解决的方案——组件库
组件库的页面开发模式
!doctype html
head
title余额宝查询/title
link rel=stylesheet href=lib/imui.all.css /
script src=lib/tabs.js/script
script src=lib/handlebars.js/script
script type=text/javascript src=function1.js /script
div id =assetQuery/div
/head
script
// 业务功能代码
iModule.init({obj:#assetQuery});
/script
/html
page.html
业务逻辑代码
基础UI库
常用组件库
规范代码
第三方模板库
组件化开发的新问题
依赖文件需要预先按顺序加载
head
script src=lib/core.js/script
script src=lib/layer.js/script
script src=lib/drag.js/script
script src=lib/dialog.js/script
script type=text/javascript src=function1.js /script
script type=text/javascript src=function2.js /script
script type=text/javascript src=function3.js /script
script type=text/javascript src=function4.js /script
/head
引入的所有组件
相互依赖的业务代码
组件化开发的新问题
组件书写格式和基本交互规则不一致
var org = {};
var org.Utils = {};var org.Utils.tabs=function(arr){
// 实现代码
}
JavaScript
(function($){
$.fn.Tabs = function(options){
// 实现代码
};
})(jQuery);
jQuery
尝试解决的方案 —— 模块化
将一段JavaScript代码,进行统一的格式书写
通过基本的交互规则,模块之间能彼此引用,协同工作。
通过模块加载器进行异步加载依赖模块
通用模块定义 - CMD
define(function(require, exports, module) {
您可能关注的文档
- 5上13梦的翅膀精选.ppt
- 5爷爷和小树_精选.ppt
- 5两汉的盛衰精选.ppt
- 5第五章 最小树问题精选.ppt
- 5加几4加几3加几精选.ppt
- 53答案精选.ppt
- 5角动量守恒作业精选.ppt
- 6 这种玩笑开不得精选.ppt
- 4.3电控柴油机功率不足故障诊断与排除精选.ppt
- 51单片机最小系统制作精选.ppt
- 制动系统的特点项目一58课件.pptx
- 直接工程费价外运杂费填料费铁路工程施工组织与概预算78课件.pptx
- 主备用控制中心的切换LCF300型25课件.pptx
- 智能交通系统的相关技术任务三车辆自动驾驶技术王怡安徽交通6.pptx
- 智能交通监控系统任务三城市交通诱导系统诱导系统的组成王怡安.pptx
- 智能交通监控系统任务二城市交通监控系统王怡安徽交通67课件.pptx
- 直升机的特点和分类空气动力学基础与飞行原理86课件.ppt
- 直升机的飞行性能空气动力学基础与飞行原理67课件.ppt
- 职业形象塑造3职业教育国际邮轮乘务管理专业教学化妆与形象设.pptx
- 轴向拉压杆件的线应变和胡克定律张亚琴河北交通52课件.pptx
文档评论(0)