前端常用的框架有哪些?

html-css08

前端常用的框架有哪些?,第1张

给大家介绍几个在Web前端界比较优秀的前端框架。

1、Bootstrap

Twitter出品的Bootstrap在业界是非常受欢迎的,以致于有很多前端框架都在其基础上开发,如我们熟悉的WeX5就是在Bootstrap源码基础上优化而来的。我相信大多数接触过前端开发的同学多少都了解过这个优秀的前端框架。Bootstrap是基于HTML、CSS和Javascript的,它简洁灵活,可以使得Web开发更加敏捷。

它提供优雅的HTML和CSS规范,在jQuery的基础上进行更加个性化和人性化的完善。兼容大部分jQuery插件,并包含了丰富的Web组件,如下拉菜单、按钮式下拉菜单、导航条、按钮组、分页、缩略图、进度条和媒体对象等。自带了13个jQuery插件,其中有模式对话框、标签页、滚动条和弹出框等。

2、Foundation框架

Foundation框架总体来看要比Bootstrap略显高大上一点,但他们俩的设计理念都是非常清楚的,Bootstrap有引导的意思,它尝试处理你项目中的一切所需。Foundation有基础、地基及支柱的意思,给你项目中强有力的创造与支持。相对于Bootstrap丰富的组件及插件,Foundation仅提供了有限的几种元素,其目标是,即使你使用预定义的UI元素,也不应该与大家的网站长得太像。

而Bootstrap则致力于提供所有定义好的元素,这样使得看起来许多网站都差不多。Foundation默认不带图标集,它推荐使用开源字体图标。与Bootstrap一样,Foundation使用网格流式布局将网页划分为12列,针对不同的设备显示不同的列数,实现响应式布局。但Foundation不支持旧版本浏览器。其他特性如有兴趣可进一步了解。

3、Curl

Curl 是一个命令行工具,用于通过 HTTP(s)、FTP 和数十种其它协议进行请求。使用Curl可以进行文件下载、检查响应标题和自由访问远程数据。

在 Web 开发中,Curl 经常和 RESTful API 一起使用,用于测试连接。

# Fetch the headers of a URL.curl -I http://google.comHTTP/1.1 302 FoundCache-Control: privateContent-Type: text/htmlcharset=UTF-8Referrer-Policy: no-referrerLocation: http://www.google.com/?gfe_rd=cr&ei=0fCKWe6HCZTd8AfCoIWYBQContent-Length: 258Date: Wed, 09 Aug 2017 11:24:01 GMT# Make a GET request to a remote API.curl http://numbersapi.com/random/trivia29 is the number of days it takes Saturn to orbit the Sun.

Curl 命令可能比上述代码更复杂。有许多选项用于控制 headers、Cookie、身份验证等。了解更多,请阅读Everything curl。

4、Tree

Tree 是一个小型的命令行实用程序,它将目录中的文件以可视化的方式进行显示。它采用递归运行的方式,遍历每个级别的嵌套并绘制所有内容的格式树。这样就能快速的浏览并查找需要的文件。

tree.├── css│ ├── bootstrap.css│ ├── bootstrap.min.css├── fonts│ ├── glyphicons-halflings-regular.eot│ ├── glyphicons-halflings-regular.svg│ ├── glyphicons-halflings-regular.ttf│ ├── glyphicons-halflings-regular.woff│ └── glyphicons-halflings-regular.woff2└── js ├── bootstrap.js └── bootstrap.min.js

还可以使用简单的 regEx 模式来过滤结果:

tree -P '*.min.*'.├── css│ ├── bootstrap.min.css├── fonts└── js └── bootstrap.min.js

5、Tmux

根据维基的解释,Tmux 是一个终端复用器。通俗的说,它是一个能将多个终端连接到单个终端会话的工具。

Tmux允许用户在终端中的程序之间切换,添加屏幕窗格,并将多个终端连接到同一个会话,使其保持同步。在远程服务器上工作时,Tmux 特别有用,因为它允许用户创建新的选项卡,而无需再次登录。

6、du

du命令用于生成关于文件和目录的空间使用情况的报告。du很容易使用,可以递归地运行,遍历每个子目录并返回每个文件的大小。

du 的常见用例是:当某个驱动器的空间不足,用户不清楚每个存储器的大小。使用此命令可以快速查看每个文件夹所占用的存储空间,从而找到占用最大空间的存储器。

7、AUI

AUI是最近流行起来的,作者声称是专为APIClound设计的一套框架,解决了许多移动端开发实际中遇到的许多问题,是一个纯CSS框架。使用容器+布局+模块的构建方式,JS辅助,更自由更灵活更易于扩展使用。遵循Google Material设计规范,完美适配各个机型。面向HTML5,使用CSS3实现动画交互,轻量级高性能。AUI是使用MIT License授权,你可以复制、出售。目前最新版本2.0。

8、Amaze UI

这是称为妹子UI的开源框架,据称是中国首个开源HTML5跨屏前端框架。妹子UI以移动优先为理念,从小屏逐渐到大屏,实现响应式网页。Amaze UI包含20+个CSS组件、20+个JS组件,更有多个包含不同主题的Web组件。相比国外框架,妹子UI关注中文排版提供本地化支持。面向HTML5开发,使用CSS3来实现动画交互,轻量级高性能。

9、Frozen UI

Frozen UI是一款开源,简单易用,轻量敏捷的移动端框架。基于手Q样式规范,目前全面应用于企鹅手Q增值业务中。基础样式效果简单色调清爽,社区活跃,组件自然不少。包括按钮、列表、表单、通知、提示条、弹出框、选项卡等等常用组件。还包括一个FrozenJs的JS组件库。可以在主流的Android和IOS上应用。基本样式使用离线包的方式减少请求提供快速接入方案。当然,根据网友反映,也存在大大小小的bug。不过总体来说,还是值得一用的。奇怪的是,Github上显示的最后更新时间是一年前,难道已经没人维护了吗?

# Running this will show the space usage of each folder in the current directory.# The -h option makes the report easier to read.# -s prevents recursiveness and shows the total size of a folder.# The star wildcard (*) will run du on each file/folder in current directory.du -sh *1.2G Desktop4.0K Documents40G Downloads4.0K Music4.9M Pictures844K Public4.0K Templates6.9M Videos

还有一个相似的命令 df(Disk Free),使用df会返回有关可用磁盘空间的各种信息。

以上介绍了现在热门的几个Web前端框架,以及它们的主要功能,希望对大家学习Web前端有所帮助。

现在比较常用的主流框架有Vue、React、Angular。

Angular

Angular原名angularJS诞生于2009年,之前我们都是用jquery开发,自从angular的出现让我们有了新的选择,它最大的特点是把后端的一些开发模式移植到前端来实现,如MVC、依赖注入等,创新式的双向数据绑定不知简化了我们多少代码,让我们为之疯狂,特别是表单处理方面,从此名声大噪。

好的框架一般会有两个结果,一个继续不断更新迭代,避免被拍死在沙滩上,一个是被一些大公司收购焕发第二春,angular属于后者被google所收购,且从2.0后改名angular并使用微软的typescript作为开发语言,目前最新版本8.0,照说傍上google与微软这两条大船,前途应该不可限量才对,然而造化弄人,现在angular的市场份额已经被React这个后起之秀和Vue这颗新星远远地甩到脑后。

React

React,facebook出品,正式版推出是在2013年,比angular晚了4年,但得益于其创新式的VirtualDOM,性能上碾压angularJS,一经推出,火的一塌糊涂。 特点很多,VirtualDOM、JSX、Diff算法等,支持ES6语法,采用函数式编程,门槛稍高,但也更灵活,能让开发具有更多可能性。

Vue

Vue作为最后推出的框架(2014年),借鉴了前辈angular和react的特点(如VirtualDOM、双向数据绑定、diff算法、响应式属性、组件化开发等)并做了相关优化,使其使用起来更加方便,更容易上手,比较少适合初学者。网上有很多人说Vue不适合做大型项目,纯属扯淡,Vue在这方面已经优化得很好,当然,大量的响应式属性(监听属性)也许会用一定的性能损耗,但在硬件、网络大力发展的今天,这些细微的性能差异几乎感觉不到。

随着项目越来越大,你是不是觉得项目的 CSS 越来越难维护,常用的属性就是那么几个,来来回回的写,搞得你也很烦,如果是那么赶紧尝试用 ACSS 方案来解决你的问题吧,如果否,那说明你经历的项目还不够多不够大,这时候你要继续努力搬砖。

如果你不了解什么是 ACSS 的话,可以参考下我之前的教程: CSS 架构之 ACSS 。如果你想了解项目组织样式的演进历史,强烈建议你研读 TailwindCSS 作者 2017 年写的把 CSS 分为五个阶段的一篇文章:

读完你会彻底理解「为什么传统的 “语义化类名” 是 CSS 难以维护的原因」,详述了 CSS 的五个阶段,写的很棒,多看几遍。

回到 ACSS,ACSS 中目前最流行的框架就是我们文章的主角 TailwindCSS 。

但是,如果在项目中使用建议你使用 Windi CSS 。

它们是一种继承关系,如何 TailwindCSS是父类,那么 Windi CSS 就是子类。

当然你也可以认为 TailwindCSS 是 ES5, Windi CSS 是 JavaScript , Windi CSS 在 TailwindCSS 的基础上进行了扩展,还包括 ES6+ 的部分,这个我们留在 TailwindCSS 章节讲。

不过,你可以放心学习 TailwindCSS,它的语法在 Windi CSS,完全是可用的。

Windi CSS 如何安装结合其他框架使用,在 安装 章节非常清楚。

而且我们也没必要纠结 WIndiCSS 的大家过程,这些框架都会帮我们处理的,这里我们简单的搭建一个项目,方便接下里的演示:

在 package.json 文件中的 script 字段,我们新增如下字段:

接下来可以运行命令:

项目根目录将会新增三个文件:

查看 index.html 的文件内容大致如下:

HTML 层面全部都是 ACSS 的写法,同时注意文件开头应用的样式:

我们对其重新命名: windi.css => windi-acss.css 。

现在我们运行命令:

这个命令会根据 HTML 的类名生成对应的 CSS,这是项目的目录结构为:

多了个文件 windi-acss.css 其内容为:

现在可以在浏览器打开 index.html 文件了,看到效果是下面这样:

为了更好的演示和提升开发体验,我们需要对项目进行一些调整。

首先,就是增加热更新:

windicss:watch 命令添加了 -d 参数,开启开发环境下的热更新功能。

目录调整为如下结构:

index.html 的内容替换为:

npm run windicss:watch 之后,打开浏览器看到: