抽象组件库的可行性讨论

首先这篇博文不是教程也不是研究技术技巧,这只是我对目前我正在着手写的一个组件库的一些想法,以及我对当前主流的这些css框架的一些看法。

当前的一些主流css框架,YUI也好,bootstraps也好,都各自有各自的优点以及缺点。这也是所有的框架都会客观存在的问题。 拿优点来说,所有的框架都能提高项目的开发效率,规范开发流程,便于维护(仅针对使用框架情况下的维护)等等。 而缺点也都很明显,使用一个框架,你必须要了解整个框架,在查看代码,阅读文档的时候,学习成本明显偏高。对于一个小项目,或者单页面较少的大项目来说,css框架的代码量非常臃肿,夸张到有时候90%的代码都会用不到。最重要的一点,太依赖框架,有时可能无法帮助你提升自己。

我个人认为,要保留框架的优点,克服一些缺点的办法,就是自己开发框架。当然并不是说自己开发框架就没有了缺点,有一些是无法规避的,无论是使用别人的框架还是开发自己的框架,都要面对代码的臃肿这个难题,但是如果自己来写,就可以很清晰的知道,自己需要什么,不要什么,把臃肿,不灵活的损失最大程度的降低。

我正在写的这个东西,我个人管他叫组件库,因为在我动手的第一天,就决定抛弃框架对页面布局的限制。只保留组件内部布局。我认为,这样可以“最大程度的放开对设计师的束缚”。

我相信跟框架打过交道的设计师都会被各种束缚弄的头疼,我也做过美工,明白这里面的痛苦。所以我写的这个库就只把所有的组件抽象出来,不干涉页面布局,随意设计师去发挥。而我们只需要把固定的组件填充到设定的容器里。

说道这里,有一些框架比如Blueprint,把布局,排版跟组件完全分离,目的之一是减少css的引用,如果只引用他的组件文件,是不是就跟我想写的组件库一样了哪?这里我就说一下我的组件库还要抛弃元素的设计样式。

那些分离出来的组件库,设计程度依然太高,如果设计师的图跟框架自带样式区别较大,就要不停的写新样式去覆盖组件库,造成代码越来越臃肿。抛弃了设计样式之后,组件只剩下了基础的布局样式,这个时候把他拿出来放到页面上,就是一个简单原始的结构,就像是一个骨架,如下图:

上面是框架里的代码表现,下面是传进去设计样式参数之后的样子。对于给结构传样式的方法我还在研究,总之不会是到茫茫的样式表里去找着修改,肯定要设计一套比较方便的传参数的方法,

比如一个按钮,会想办法留两个传参数的接口,一个是标准浏览器下传两个数值做渐变,另一个是IE9以下的浏览器传一张背景图(当然也可能完全抛弃IE9以下版本的浏览器),这样的话按钮的结构就像

  1. <button><span></span></button>

标准浏览器下忽略span,但是IE下用span做滑动门,或者都使用图片背景,取决于是否想使用兼容性不好的新技术。这样做的好处是,让 按钮在所有浏览器下表现一样。

再比如表单跟列表,表格,对于各种横版竖版的结构都要写好,做到增添元素不影响基础布局,在这样的前提下传进去颜色,宽高(或者适应父元素的宽)等等参数。

……….. 目前这套东西我才刚刚开始着手设计架构,无论后面能不能抽象成为一个组件库,有一点是可以肯定的,根据自己的项目高度定制,在不引用其他第三方css框架的情况下,提高自己的开发效率,并且在写这套东西的时候加深对模块化的理解。暂时就当是练手吧,多写多练,总归是没有坏处的。

慢慢添加修改和完善吧。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

前端优化带来的思考,浅谈前端工程化

这段时间对项目做了一次整体的优化,全站有了20%左右的提升(本来载入速度已经1.2S左右了,优化度很低),算一算已经做了四轮的全站性能优化了,回顾几次的优化手段...

413
来自专栏jeremy的技术点滴

使用kcptun加速翻墙

4375
来自专栏哲学驱动设计

OEA 2.11 支持单机版数据库 - SQLite与SQLCE对比

在 OEA 平台 设计中,需要支持多种数据库,这至少包括了 SqlServer、Oracle、一个单机文件数据库。而之前对于这一块,我们一直没有实现,只是预留了...

1737
来自专栏钟绍威的专栏

restful是什么非restful的开发方式restful的开发方式

resful是什么 rest是一种开发的风格,他不是框架,也没有类库,是一种约定 有什么不同 非restful的开发方式 当没有接触restful的时候,URL...

1857
来自专栏文渊之博

简述SQL2008部署多实例集群(学习)

数据库集群     集群的存在意义是为了保证高可用、数据安全、扩展性以及负载均衡。 什么是集群?      由二台或更多物理上独立的服务器共同组成的"虚拟"服...

18210
来自专栏九彩拼盘的叨叨叨

Web 前端性能优化概要

本文遵守创作共享CC BY-NC-SA 4.0协议 网络平台如需转载必须与本人联系确认。

661
来自专栏SDNLAB

SDN世界里,网工需要哪些技能?

网络工程师需要学习新技能和使用自动化工具才能适应软件定义网络(SDN)的工作环境。 听起来似乎很难,但是网络工程师都很聪明。我们往往必须处理一些大型复杂网络,它...

3348
来自专栏腾讯IVWEB团队的专栏

浏览器渲染原理

本文为大家分享了浏览器的工作原理和渲染过程,如计算CSS样式,构建Render Tree, Layout等过程。

1.2K2
来自专栏开源项目

【码云周刊第 11 期】追踪代码大仓库? Git 的拿手好戏!

每周为您推送最有价值的开源技术内参! 一周热门资讯回顾 ActFramework 1.0 正式发布, Java MVC 框架 TIOBE 3 月编程语言排行榜...

3569
来自专栏李成熙heyli

性能优化三部曲之二——通用纯前端优化首屏时间

背景: 对构建的改造已经完成,目前构建的能力可以较为灵活地支撑进一步的优化 希望进一步减少首屏时间,将首屏时间控制在2秒以内 页面情况: 优化之前,并没有上报...

2709

扫码关注云+社区