前端开发web组件之旅(一)-- 定义与加载组件
/* 前言 */
自上而下的 职责和API
应用层
框架层
框架
浏览器
一 组件定义与调用
1.增加一个组件
tabview.css
--------------------------------------------
.tabview_menu{xxxxx};
.tabview_content{xxxxx};
tabview.js
----------------------------------
var abc =5;
function TabView(cfg){
this.a = cfg.a;
this.b = cfg.b;
} TabView.prototype = {
c: function(){ abc++;},
d: function(){ abc--;}
}
2.引用一个组件
<link type="text/css" rel="stylesheet" href="css/tabview.css" >
<script type="text/javascript" src="js/tabview.js" ></script>
<script type="text/javascript">
(function(){
var tabview = new TabView();
})()
</script>
3.CSS命名空间和js匿名空间
treeview.css
----------------------------------
.treeview_menu{xxxx}
.treeview_content{xxxx}
/**Js通过匿名空间隔开公有私有,通过匿名函数形成域,把对象挂载到window上暴露出来接口
/*window.TabView = TabView //闭包的经典应用 **/
tabview.js
------------------------------------
(function() {
var abc = 5;
function TabView(cfg){
this.a = cfg.a;
this.b = cfg.b;
}
TabView.prototype = {
c: function(){ abc++},
d: function(){abc--;}
}
window.TabView = TabView;
})();
4.基于require.js重写代码
animate.js
----------------------------------
define(function(){
function Animate(){};
return {Animate: Animate};
});
treeview.js
----------------------------------------
define(function(){
function TreeView(){};
return {TreeView:TreeView};
});
tabview.js
----------------------------
define([ 'animate' ],function(a){
function TabView(){
this.animate = new a.Animate();
};
return {TabView: TabView};
});
main.js
-------------------------------------
require ([ 'tabview' ,' treeview' ],function(tab,tree){
var tabView = new tab.TabView(),
treeView = new tree.TreeView();
});
前端开发web组件之旅(一)-- 定义与加载组件的更多相关文章
- 仿ElementUI构建自己的Vue组件库用babel-plugin-component按需加载组件及自定义SASS主题
最近使用ElementUI做项目的时候用Babel的插件babel-plugin-component做按需加载,使得组件打包的JS和CSS包体积大大缩小,加载速度也大大提升,所有想模仿做一个组件库也来 ...
- Vue加载组件、动态加载组件的几种方式
https://cn.vuejs.org/v2/guide/components.html https://cn.vuejs.org/v2/guide/components-dynamic-async ...
- 前端提升生产力系列三(vant3 vue3 移动端H5下拉刷新,上拉加载组件的封装)
| 在日常的移动端开发中,经常会遇到列表的展示,以及数据量变多的情况下还会有上拉和下拉的操作.进入新公司后发现移动端好多列表,但是在看代码的时候发现,每个列表都是单独的代码,没有任何的封装,都是通过v ...
- webpack入坑之旅(五)加载vue单文件组件
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- C# 动态加载组件后怎么在开发环境中调试
动态加载组件 那就是简单的Assembly.Load动态加载dll而以.这网上资料也有不少.基本的思路基本上就是在本地上一个指定目录如[plugs]存在着一堆dll文件.主程序在初始运行时一般会把指定 ...
- 带加载进度的Web图片懒加载组件Lazyload
在Web项目中,大量的图片应用会导致页面加载时间过长,浪费不必要的带宽成本,还会影响用户浏览体验. Lazyload 是一个文件大小仅4kb的图片懒加载组件(不依赖其它第三方库),组件会根据用户当前浏 ...
- nf-Press —— 在线文档也可以加载组件和编写代码
如果帮助文档可以加载组件,那么在介绍的同时就可以运行演示demo,是不是很酷? 如果可以在线修改运行代码,那么是不是更容易理解? 上一篇 https://www.cnblogs.com/jyk/p/1 ...
- 【记录】VS2012新建MVC3/MVC4项目时,报:此模板尝试加载组件程序集“NuGet.VisualStudio.Interop...”
最近电脑装了 VisualStudio "14" CTP,由于把其他版本的 VS 卸掉,由高到低版本安装,当时安装完 VisualStudio "14" CTP ...
- 利用简洁的图片预加载组件提升h5移动页面的用户体验
在做h5移动页面,相信大家一定碰到过页面已经打开,但是里面的图片还未加载出来的情况,这种问题虽然不影响页面的功能,但是不利于用户体验.抛开网速的原因,解决这个问题有多方面的思路:最基本的,要从http ...
随机推荐
- hug and Compression Resistance
Hugging => content does not want to grow Compression Resistance => content does not want to sh ...
- 让IE6兼容position:fixed
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- N对括号的合法组合
递归实现,需要注意以下几点: 1. 递归终止条件 2. 递归递推关系式 这里实际上是一个排列问题,只是排列需要满足条件在每一次递归调用时左括号数不能少于右括号数. 还有一点需要特别注意,当推出递归调用 ...
- 学习 opencv---(9)形态学图像处理(一):膨胀和腐蚀
本篇文章中,我们一起探究了图像处理中,最基本的形态学运算--膨胀与腐蚀.浅墨在文章开头友情提醒,用人物照片做腐蚀和膨胀的素材图片得到的效果会比较惊悚,毁三观的,不建议尝试.......... 一.理论 ...
- Android——C语言、JNI与低层调用
JNI java native interface c的基本数据类型 int:32位,能表示的数字是2的32次方个 最高位用来表示符号位,那么还剩下31位可以表示数值,所以能表示的数字就是2的31次方 ...
- (转)tar 解压缩命令
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...
- Eclipse快捷键调试
Eclipse中有如下一些和运行调试相关的快捷键Ctrl+Shift+B:在当前行设置断点或取消设置的断点 F11:调试最后一次执行的程序 Ctrl+F11:运行最后一次执行的程序F5:跟踪到 ...
- abap中的弹出窗体函数
POPUP_TO_CONFIRM_WITH_MESSAGE 会话框确实处理步骤; 用识别正文POPUP_TO_SELECT_MONTH 日历:弹出 POPUP_TO_C ...
- android79 Fragment生命周期
切换成01时依次调用onCreate,onStart,onResume方法,切换到03的时候01依次onPause,onStop,onDestroy,03依次onCreate,onStart,onRe ...
- 查看源码Vim+Cscope
http://blog.csdn.net/huiguixian/article/details/7044869