iview 和 Elemet UI 源码比较
(近期给自己立了个小flag,读源码,每周至少读1篇源码)
下面来谈谈iview 和 Elemet UI 这两个基于Vue 的UI 框架源码的基本结构以及区别。
一、文件结构
开发主要放在根文件夹下的src下:
1. ivew 文件结构
|--src
|--components //所有的UI组件
|--directives
|--locale //语言
|--mixins
|--styles
...
index.less //样式文件
|--utils
index.js //入口文件
- element UI 文件结构 :与iview稍微不同的是
● 把 components UI组件文件夹直接放在根文件夹下名为 packages;
● 样式文件放在了packages下的theme-chalk 下,所有的样式都在index.scss里导入;
二、入口文件index.js
两个UI库基本一样,主要分为以下几步:
1.引入所有的UI组件:
import Pagination from '../packages/pagination/index.js';
import Dialog from '../packages/dialog/index.js';
...
const components = [
Pagination,
Dialog,
...
}
2.install 方法
const install = function(Vue, opts = {}) {...}
3.自动安装
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue);
}
4.导出组件以及其它需要导出的属性或方法
module.exports = {};//相当于ES6 export default {};
//如果想了解更多关于模块加载的知识可以去看阮老师的文章
//http://es6.ruanyifeng.com/#docs/module-loader
module.exports.default = module.exports;
三、样式文件index.less
两个UI库基本一样,都是将所有的样式都导入到同一个文件下,经过编译以供用户使用。例如ivew:
@import "./custom";
@import "./mixins/index";
@import "./common/index";
@import "./animation/index";
@import "./components/index";
四、两个库组件整体引入和按需引入
1.整体引入:
两个库一样的方法。
import uiName from '***';
import '***.css';
Vue.use(uiName);
这是因为源码入口文件index.html都采用了一致的方法:见上面第二条解释;
2.按需引入:
两个库都可以挂在全局组件上调用:
import { Button, Table } from '***';
Vue.component('Button', Button);
Vue.component('Table', Table);
但是 element UI 引入后 还可以这样调用:
Vue.use(Button)
Vue.use(Select)
这是因为 element UI 在每个组件上都用了install 方法,ivew则没有用,不能用.use调用
iview 和 Elemet UI 源码比较的更多相关文章
- 项目源码--Android天气日历精致UI源码
下载源码 技术要点: 1. 天气日历精致UI 2. Android的Http通信技术 3. Android的天气信息解析 4. Android的日历信息的统计 5. Andorid的地理位置的管理 6 ...
- chrome ui源码剖析-Accelerator(快捷键)
好久没有自己写东西了,chrome有着取之不尽的技术精华供学习,记录一下. 源码目录: http://src.chromium.org/viewvc/chrome/trunk/src/ui/bas ...
- element ui源码解析 -- input篇
el-input是element ui中使用最频繁的组件之一了,分析其构成从四个方面入手:DOM结构,属性,样式,事件入手 DOM结构: <div> <input /> < ...
- element ui源码解析 -- button篇
要看源码就得从最简单的开始,button够简单的了,就从他开始吧. 安装依赖后源码目录在:node_modules/element-ui/packages中,可以看到这里的文件夹命名是不是很熟悉,就是 ...
- elementUi、iview、ant Design源码button结构篇
在看elementUI的button组件的时候,一起和iview.ant Design的button组件比 较功能.样式.代码结构,看他们的一些不同点,不同的写法哪种会好些,button的对外开放的功 ...
- ASP.NET通用权限框架 权限管理系统源码jquery 精美UI源码
软件技术开发,合作请联系QQ:858-048-581 开发工具 VS2010 .sql2005.2008等(在Sql server数据执行脚本即可) VS2010 打开保证本地运行成功(数据库.源代 ...
- chrome ui源码剖析-ViewProp
先熟悉set的find原理 http://www.cnblogs.com/Clingingboy/p/3252136.html 这个类改造下,还是非常实用的,可以对于不同的类型做数据存储 一.Vi ...
- Element UI 源码—— Carousel 走马灯学习
参考博客:https://segmentfault.com/a/1190000014384638?utm_source=tag-newest
- 50个Android开发人员必备UI效果源码[转载]
50个Android开发人员必备UI效果源码[转载] http://blog.csdn.net/qq1059458376/article/details/8145497 Android 仿微信之主页面 ...
随机推荐
- Linux基础篇三:文件系统
/bin 实际上是 /usr/bin /sbin 实际上是 /usr/sbin /usr/bin 里面的命令其实是依赖 /lib64 或者 /lib32 ldd /us ...
- 吴裕雄--天生自然python学习笔记:python 用pygame模块角色类(Sprite)移动与碰撞
角色类(Sprite) Py game 游戏中有许多组件会重复用到,比如射击宇宙飞船的游戏中,外星宇宙 飞船可能多达数十艘 , 通过创建“角色类”,可以生成多个相同的对象. Py game 角色类是游 ...
- 吴裕雄--天生自然python学习笔记:python 用firebase实现英文电子词典
Firebase 版电子词典 学英语是许多 人一辈子的麻烦 . 所以本例中,我们开发一个英汉词典,用户执 行程序后,单击“翻译”按钮即可显示该单词的中文翻译 . 英汉词典标准版 因为这个案例的数据必须 ...
- E - Apple Tree(树状数组+DFS序)
There is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow in the tree. ...
- Java多线程处理任务(摘抄)
很多时候,我们需要对一个庞大的队列或者二维数组进行处理.这些处理可能是循环的,比如给一个excel多个sheet的联系人列表发邮件.很幼稚的方法就是用一个或者两个FOR循环搞定,对于庞大的数据有得让你 ...
- c++与c语言的区别部分
1.new <malloc> delete <free> 2.多态: 重载 <函数 操作符> 类似于c中的变化参数 虚函数 3.模板 ...
- Linux_centos安装后无法进入图形界面
问题 直接默认进入字符界面 root之后init 5也没用 解决方法 出现问题的原因在于安装时选择了最小安装,如图所示
- win10安装revit失败,怎么强力卸载删除注册表并重新安装
一些搞设计的朋友在win10系统下安装revit失败或提示已安装,也有时候想重新安装revit的时候会出现本电脑windows系统已安装revit,你要是不留意直接安装revit,只会安装revit的 ...
- jstl之核心标签
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- idea如何使用git
1.安装好git(我下载的2.23.0版本百度网盘分享) 提取码 7ie1 2.配置git环境变量 Path 路径是你安装的git 目录下的bin目录 安装好后窗口命令输入git 可以测 ...