JS前端知识框架-文档共享方案

318 阅读5分钟
       JavaScript很吸引我,因为它能够快速构建一些东西并分享给别人。把它放在网上,通过一个网址,任何有浏览器的人都可以看到。这就是吸引我开始 Web 开发和 JavaScript 编程的原因。--尤雨溪。

     为了解决文档共享问题,html提出了标记语言解决方案;html没有涉及内容呈现样式,css提出样式层叠继承的解决方案;为让网页设计者也能实现简单的页面交互逻辑减少服务器负担,javascript提供了脚本语言解决方案;为提高开发效率简化DOM操作,jQuery提供了封装方法库解决方案;因开发效率需要使用多种代码库造成不一致问题,bootstrap提供UI框架解决方案;为了解决HTML能构建页面应用而不仅只是静态文档展示,提供了JS数据绑定和组件化的VAR框架解决方案;为了能在非浏览器应用程序上运行页面应用,提供了小程序解决方案。

 从实现静态文档展示的H5C3ES6,到为高效操作封装整合的jQuery、Bootstrap方法库框架,到为高效实现状态与UI同步的页面应用的VAR模块包框架,最后为实现在非浏览器应用程序上运行页面应用的小程序。伴随互联网大发展,文档共享就由简单类似office文档的页面制作发展成今天的交互功能强大的前端开发。

H5: 1989年伯纳斯-李为了研究人员使用并共享文档,提出一个基于互联网的超文本系统,1993年发布首个HTML规范提案:超文本标记语言(HTML) 1993年伯纳斯-李发布首个HTML规范的提案:“超文本标记语言(HTML)”互联网草案。2014年10月28日,HTML5作为稳定W3C推荐标准发布。

 C3: HTML规范虽然规定了网页中的标题、段落应该使用的标签,但是没有涉及这些内容应该以何种样式(比如大小、位置、间距、缩进等属性)呈现在浏览器中。 1994年,在芝加哥一次会议上哈肯·维姆·莱提出了含有层叠主意的CSS,一个文件的样式可以从其他的样式表中继承下来。 2001年5月23日W3C完成了CSS3的工作草案,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块,从2006年到200年,“DIV+CSS”布局逐步取代缺乏灵活性的传统表格布局,无表格网页设计成为网页内容布局的主流方案。到2017年为止,第3版规则还未完备。

ES6: 1994年网景公司成立,公司需要一种胶水语言,让网页设计师可以很容易地使用它来组装图片和插件之类的组件,且代码可以直接编写在网页标记中,在浏览器中运行,减少服务端的负担。 1995年12月4日发布了javascript。ES6为ECMAScript2015,是ECMA-262标准化脚本程序设计语言的一种实现,目前最新版本是ES9.

 JQuery: JavaScript库,简化DOM的操作。2006年1月约翰·雷西格在BarCamp NYC上发布第一个版本。

 Node: 为了编写高性能web服务器,2009年5月Ryan Dahl对Chrome V8引擎进行了封装开发了Node.js语言,让 JavaScript能运行在服务端的开发平台。异步I/O、事件驱动,是高性能服务器的原则,JavaScript是单线程执行的,天然的只能使用异步I/O。  

Bootstrap: 由Twitter开发者制作的一套可以保持一致性的工具和框架,在Bootstrap之前,开发界面需要使用不同的代码库,这样很容易导致不一致的问题,从而增加了维护的负担。 2011年8月19日将其作为开源项目发布。 

Angular: Angular是为了克服HTML在构建应用上的不足而设计的,虽然HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用就显得乏力。Angular试图成为WEB应用中的一种客户端的解决方案,主要考虑的是构建CRUD(增加Create、查询Retrieve、更新Update、删除Delete)应用,不太适合游戏等界面操作频繁的应用,更高层的抽象技术必然会损失一些灵活性。Angular诞生于2009年,由Misko Hevery 等人创建,后为Google所收购,最为核心特性的是:MVC(Model–view–controller)、模块化、双向数据绑定、语义化标签、依赖注入等等。

 React: React由Facebook 的软件工程师Jordan Walke创建,用于构建javascript的UI框架,他受到PHP的HTML组件框架XHP影响,该框架于2012年部署在Instagram,于2013年5月在JSConf US开源。React提供jsx语法来渲染数据,允许开发者在JavaScript中书写HTML。

 Vue: 是一套渐进式构建javascript的UI框架,提供HTML模板渲染数据。作者尤雨溪在谷歌工作时对笨重的angular某些功能提取封装成轻量的vue,2014年2月第一次将它作为实际的项目发布在Github上,并把链接发送到了Hacker News 上。  

MP: 为应用程序上加载页面应用程序,微信自定义一套web代码规范wxml+wxss+json+javascript。2017年1月9日,张小龙在2017微信公开课上正式发布小程序。

编程就是发现问题,解决问题,提供问题的解决方案,文档共享编程解决方案最终目的是状态与UI同步。