常用前端技术有哪些?他们之间有什么关系?

文章对比了Vue、React、Angular4和Ember.js在组件复用、测试和学习曲线方面的特点。Vue和React以其灵活性和测试友好性适合新项目,Angular4适合大型工程,Ember.js则提供完整的生态系统。此外,文章还介绍了HTML、CSS、JavaScript等基础技术的重要性,以及AJAX在创建交互式网页应用中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 常用的前端技术:

1. 可复用的组件
组件复用是每个项目都会重点关注的一个维度。合适的、职责单一的组件会大大提升新特性的开发效率和工程的可维护性,也能方便地进行测试。那么他们的表现都如何呢:

d67b54a3c9c34041a0dfb545f8201df2.png

 

 

概括起来,就是Vue、Component的组件相对灵活、轻量,添加依赖就可以无缝集成到遗留系统中。对于从0到1的系统,也可以使用新的实践来构建工程,例如ES6、Webpack等技术。Angular4官方推荐使用TypeScript,这需要单独构建和打包,不方便与遗留系统集成。Ember.js自定义了一整套生态,基于CoC理念的设计,采用了前端工程中比较前沿的实践和标准,很难与遗留系统集成,更适合在新项目中使用。至于数据绑定,各有优势。双向绑定在表单交互多的场景中更便捷,单向绑定在管理跟踪记录组件状态时更高效。组件状态更新,各有不同的实现:

  • Vue2.js通过定义setter来监听状态变化,特殊场景需要特殊的API支持, 基于virtual DOM的视图更新。
  • React在组件的状态或属性的变化后,也是基于virtual DOM的视图更新。
  • Angular4在引起状态变化的时刻,框架自动触发脏检查,也可以手动执行脏检查,直接操作HTML DOM更新视图。
  • Ember.js提供数据模型,所有数据的操作通过API执行,使用Glimmer引擎进行HTML渲染和更新。

前端基础课程
链接:https://pan.baidu.com/s/1tE61JoacUTDG-bEeVlIkfw

其中,主要的区别是Angular4是通过事件监听,对比数据更新,直接操作DOM来更新视图,而其它都通过Virtual DOM的思路来更新视图。
2. 组件测试
测试是提高软件质量的有效手段,易于编写测试的框架,能降低编写测试的成本,充足的测试也能提高我们交付软件的信心。它们在组件测试方面的比较如下:

cc7cab97e87d4cccbb5db996c63e118a.png

 

 

可见,Vue, React测试灵活,可以根据项目具体情况来定制,但是没有统一的测试实践规范,对开发人员的能力有较大依赖。Angular4和Ember概念多,有官方推荐的实践,要完全掌握难度大,优势是实现起来更规范。
3. 学习曲线
在技术选型过程中,保证项目按时交付,控制风险,团队能力建设提升,都是需要考虑的因素。作为一个软件服务公司,如何快速的提升人员能力,选用学习曲线合适的框架,控制项目成本也是一门技术活。下面,对使用这些框架的难度进行了一些简要分析:

129681b83f2742b48bc47777809683c7.png总结
通过上面三个维度的分析,我们发现Vue.js和React的重点更侧重于创建可复用、易于测试、能灵活集成的组件。当然,通过其它扩展组件,以及一些脚手架插件的支持,也可以方便的搭建一个采用最新实践的前端应用的构建框架。它们最大的优点是按需定制,学习曲线平滑,构建出来的应用小而精。
相对来说,Angular4和Ember是大而全的框架,它们更侧重于大型前端工程的构建,为开发人员屏蔽项目构建底层的细节,提出了自己的一套解决方案。使用它们的难点是要度过前期曲线陡峭的学习期,优点是由于使用了标准化的开发方式,后期能极大的提高开发生产力,提升开发效率。
最后,说了这么多,大家在具体选型时还是要首先分析自己的需求和现状,然后再做选择。不求最酷炫,只求最合适!

第一部分:

1. HTML超文本标记语言 (Hyper Text Markup Language) ,是用来描述网页的一种标记语言。

 

<html>  

    <head>  

        <title>HTML</title>  

    </head>  

    <body>  

        <p id="num1">Hello World! I'm HTML</p>  

    </body>  

</html>  

网页文件本身是一种文本文件,通过在文本文件中添加标记,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。

HTML之所以称为超文本标记语言,是因为文本中包含了所谓“超链接”点。超文本(Hypertext)是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。

  概括,HTML就是整合网页结构和内容显示的一种语言。

Hello World! I'm HTML

  浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容。

  这段内容在浏览器上显示的结果是:Hello World! I’m HTML

  我们看标签上有一个id,这是这个标签的唯一标识,方便别人找到它,对它进行操作。

2. CSS 层叠样式表单(Cascading StyleSheet)。是将样式信息与网页内容分离的一种标记性语言 。作为网站开发者,你能够为每个HTML元素定义样式,并将之应用于你希望的任意多的页面中。如需进行全局的更新,只需简单地改变样式,然后网站中的所有元素均会自动地更新。这样,即设计人员能够将更多的时间用在设计方面,而不是费力克服HTML的限制。说白了,CSS就是设置网页上HTML元素属性的语言。

CSS代码:

#hello{  

color:blue;  

 当把这段CSS代码应用于HTML中,它会找到id为“hello”的HTML标签,将其中的内容以蓝色显示出来;具体的插入HTML的方法这里不再赘述(说一句,只说明是什么,有什么用的问题,不关注技术细节,技术细节网上很好找)。

3. Javascript,首先说明JavaScript和Java无关,JavaScript 是属于网络的脚本语言!那么为什么名字如此相似?这是典型的市场营销方面的成功,它的推广成功,也是借了Java的东风。当微软开始意识到Javascript在Web开发人员中流行起来时,微软还是一贯风格,建立了自己的脚本语言,JScript。

Javascript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。

使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。例如可以设置鼠标悬停效果,在客户端验证表单,创建定制的HTML页面,显示警告框,设置cookie等等。

  网页中所有的对数据进行判断、操作以及向浏览者反馈信息的本地代码实现部分均是Javascript(当然也有其他的),这样既可以使网页更具交互性,给用户提供更令人兴奋的体验,同时减轻了服务器负担。

JS的代码如下:

function jsHello(){  

       alert('Hello World!');    

}

 当把以上代码应用于HTML代码,它会在你的HTML载入时,弹出一个内容为“Hello World!”的对话框。同样,它是通过嵌入或调入在标准的HTML语言中实现的,至于如何嵌入或调入不再赘述,理由上面提到了。

4. Xml可扩展标记语言 (Extensible MarkupLanguage),是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。你可以把XML理解为一种数据库,例如rss就是xml的一种变体。

XML的起因是,用户受到SGML(后面再说)复杂性的挫伤和HTML的不充分。相对HTML来说,XML更追求严谨性,如果说你在HTML代码中标签比较混乱,如未关闭等,或许浏览器会忽略这些错误;但同样的事情发生在XML中会给你带来大麻烦。

铺垫终于完了,在进入正题之前,建议大家对比着图来理解后边的内容,废话不多说,开始进入正题。

第二部分:

  这里的DOM指的是HTML DOM。HTML DOM是W3C的标准,同时它也是HTML的文档对象模型的缩写(the Document Object Model for HTML)。HTML DOM定义了用于HTML的一系列标准的对象,以及访问和处理HTML文档的标准方法。通过DOM,可以访问所有的HTML元素,连同它们所包含的文本和属性。其中的内容可以修改和删除,同时也可以创建新的元素。HTML DOM独立于平台和编程语言。它可被任何编程语言诸如Java、Javascript和VBScript所使用。HTML DOM就是HTML语言对外界开通的接口,以便其他语言能够访问或修改HTML内部的元素。

当js需要对html元素进行操作时,DOM是一个很必要的对象。

  你便可以通过利用DOM对象构造如下代码并插入到HTML代码中的任何位置来实现。  

  当用CSS去修饰HTML中的元素,这一过程可以称为声明HTML元素样式的过程。

SGML标准通用标记语言(standardgeneralized markup language)。由于SGML的复杂,导致难以普及。SGML有非常强大的适应性,也正是因为同样的原因,导致在小型的应用中难以普及。HTML 和 XML同样衍生于SGML:XML可以被认为是SGML的一个子集,而HTML是SGML的一个应用。XML的产生就是为了简化SGML,以便用于更加通用的目的。比如语义Web,它已经应用于大量的场合,比较著名的有XHTML、RSS 、XML-RPC 和SOAP 。

XHTML是可扩展超文本标识语言(TheExtensible HyperText MarkupLanguage)。HTML是一种基本的Web网页设计语言,XHTML是一个基于XML的置标语言,看起来与HTML有些相象,只有一些小的但重要的区别,XHTML就是一个扮演着类似HTML的角色的XML,所以,本质上说,XHTML是一个过渡技术,结合了部分XML的强大功能及大多数HTML的简单特性。

  简单的说,XHTML比HTML要严谨些,但又没像XML那么严重——譬如所有的XHTML标签以及属性必须要小写,属性性必须要加双引号(当然如今的浏览器不管是IE还是FF,对HTML和XHTML采取兼容措施,这也是XSS产生的根本原因),而且也可以像XML一样自定义部分标签,因此有了极大的灵活性。

  而且进入了XHTML时代,大家倡导的是CSS+DIV,这也是web2.0的基础。

DHTML只是一种制作网页的概念,实际上没有一个组织或机构推出过所谓的DHTML标准或技术规范之类的。DHTML不是一种技术、标准或规范,DHTML只是一种将目前已有的网页技术、语言标准整和运用,制作出能在下载后仍然能实时变换页面元素效果的网页的设计概念。DHTML就是动态的html,Dynamic HTML。传统的html页面是静态的,Dhtml就是在html页面上加入了javascript脚本,使其能根据用户的动作作出一定的响应,如鼠标移动到图片上,图片改变颜色,移动到导航栏,弹出一个动态菜单等等。

  一般如:![](pic)

Expression是微软为了使样式表能够在修饰HTML样式的同时执行javascript脚本而在IE浏览器中增加的一个功能,这样你可以做譬如:图片的自适应宽度,表格的隔行换色等等。

  如:img{max-width:500px;width:expression(document.body.clientWidth> 200 ? “200px”: “auto”);}

XMLHTTP最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。

  来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。

  现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如:Firefox、Opera等通过window.XMLHttpRequest来创建XmlHttp对象。

XSLT(eXtensibleStylesheet LanguageTransformation)最早设计XSLT的用意是帮助XML文档(document)转换为其它文档。但是随着发展,XSLT已不仅仅用于将XML转换为HTML或其它文本格式,更全面的定义应该是:XSLT是一种用来转换XML文档结构的语言。

XSL-FO:XSL在转换XML文档时分为明显的两个过程,第一转换文档结构;其次将文档格式化输出。这两步可以分离开来并单独处理,因此XSL在发展过程中逐渐分裂为XSLT(结构转换)和XSL-FO(formattingobjects)(格式化输出)两种分支语言,其中XSL-FO的作用就类似CSS在HTML中的作用。

AJAX:异步JavaScript和XML(AsynchronousJavaScript and XML)。

  最后一个东东,它算得上是web2.0思想的心。AJAX=CSS+HTML+JS+XML+DOM+XSLT+XMLHTTP。是指一种创建交互式网页应用的网页开发技术。AJAX不是一种单一的新技术,而是有机地利用了一系列相关的技术。

  在 2005年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。

Google Suggest 使用 AJAX 创造出动态性极强的 web 界面:当您在谷歌的搜索框输入关键字时,Javascript会把这些字符发送到服务器,然后服务器会返回一个搜索建议的列表。

  在AJAX中,XmlHttp用来在不改变页面的情况下传输数据,其中传输的数据即是XML,然后通过XSLT将其格式化,利用js通过dom对象将其显示到HTML中,同时利用CSS确定数据的显示及位置。

这项技术在网络上的应用无处不在,如你的微博,你的邮箱,你的QQ空间,再如搜索引擎,电子商务平台,网络地图等等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值