web组件和基于组件的体系结构简介

让我们看看常见的web组件,看看它们为什么有用。...

Web组件允许您创建自定义HTML元素。您会发现在现代的前端JavaScript框架中使用最多的web组件。但是“Web组件”实际上是w3cweb标准,不需要框架就可以使用。

component based architecture featured

什么是web组件(web components)?

children's blocks with atomic symbols

Web组件的工作方式类似于Lego for HTML。它们是帮助HTML变得更有用和可重用的技术集合。有关更多背景信息,请查看w3web组件规范和Mozilla开发人员网络关于Web组件的页面。

这些技术包括:

  • 自定义元素
  • HTML模板
  • 影子王国
  • ES模块

让我们依次看看这些。

自定义元素

自定义元素是JavaScript使其更具功能性的特殊HTML元素。它们最好用于显示总是最新的数据,而不需要回调。你也可以给他们起任何名字。

html模板

模板是可重用的HTML块。它们非常适合放在多个地方或多个页面上的项目,比如页眉、页脚和菜单。

影子王国

DOM是将浏览器中看到的内容绑定到HTML代码的粘合剂shadowdom是DOM的一部分,它使标记、样式和功能保持分离。

shadows of trees

通过使用shadowdom,每个自定义元素都可以获得自己的DOM。这样做可以防止样式和JavaScript函数修改您不希望受到影响的元素。

es模块

这些是使web组件工作的特殊JavaScript库。

web组件的一个主要优点是可以在任何地方重用自定义HTML。因为web组件是纯HTML和JavaScript,所以它们与普通JavaScript应用程序以及框架兼容。你可以在webcomponents.org网站.

具有框架的web组件

开始使用web组件的最简单方法是使用框架。在web组件出现之前,角度.js提供了类似的功能,称为指令。在组件成为标准之前,他们做了很多与组件相同的工作。

既然组件已经成为一种标准,那么还有其他基于web组件概念的框架。它们使web组件的使用变得更简单、更精简,并将使用低级别JavaScript的许多复杂性抽象掉。

vue公司

vue logo

虚拟用户.js是一种流行的基于组件的前端框架,深受开发人员的喜爱。Vue易于学习和编程。该框架还可以方便地向基本的HTML网站添加简单组件。

相关:什么是Vue.js?

反应

react logo

React是一种被广泛采用的前端框架。这个框架也是开发人员的最爱。React最为人所知的是通过将HTML、CSS和JavaScript放到一个脚本中来简化web开发。

要了解更多信息,请看我们的学习如何**web应用教程综述。

没有框架的web组件

您可以用纯JavaScript编写web组件。但这很难做到,尤其是对于初学者。不过,有一些轻量级库可以添加到现有代码中。它们使您能够轻松地使用现代JavaScript实践,而不需要整个框架的高开销。

聚合物

polymer logo

聚合物是谷歌对网络组件运动的贡献。它是一个轻量级库的集合,使得创建自定义元素比使用普通JavaScript更容易。它有用于创建自定义元素和模板的库。

Polymer有一个polyfill库,以确保与旧浏览器兼容。还有一个材料设计组件的早期版本,可以将材料设计添加到纯HTML中。

苗条的

slim logo

另一个选择是斯利姆.js,一个一体化的库,可以很容易地添加到一个简单的网站。它简化了自定义元素的创建过程,并提供了对shadowdom的直接访问。

模板

stencil logo

最后但并非最不重要的是优秀的模具,它给你最好的两个世界。它类似于React,提供了很多相同的功能。但它提供了框架级的功能,而不会将您锁定在一个繁重的框架中。

模具还预编译您的组件,这使他们更轻。相反,React之类的框架将整个框架加载到浏览器中,并动态编译组件。当模具组件进入浏览器时,它们只是普通的JavaScript和HTML,没有额外的负担。

web组件与web设计

使用组件的主要障碍之一是设计框架的丢失,比如Bootstrap。从技术上讲,您可以将Bootstrap与基于组件的网站结合使用。React有一个引导端口。但是,如果您想使用诸如Stencil或Vue之类的东西,您可能会对组件和框架之间缺乏兼容**到不满。

传统网页设计框架

好消息是有几种设计框架可供选择。瓦丁提供了一些漂亮的组件。对于企业风格,有OpenUI5。如前所述,谷歌的聚合物也提供了材料界面组件。

坏消息是,在这些框架中,您不会找到从引导程序获得的相同体验。它们缺少了很多你在大多数设计框架中看到的元素,比如排版。

什么是基于组件的设计框架方法(the component-based design framework approach)?

不同的技术,如web组件,应该采用不同的方法。超光速子是最好的方法。它更容易为设计师使用,但它可以给开发商一个坚实和清洁的基础。超光速粒子是移动第一,提供了一个微妙的设计一致性,但产生美丽的结果。

超光速子将CSS类分解到最小可能的用途。例如,以下是使用按钮创建按钮的方式:

<a class="f6 link dim br3 ph3 pv2 mb2 dib white bg-black" href="#0">Button Text</a>

在大多数设计框架中,您会给链接一个按钮类和另一个圆角类。在超光速粒子中,你可以快速地选择填充、边框、颜色等。所有的缩写一开始可能看起来很复杂,但它们遵循一个易于学习的一致命名模式。

最小的类是一种不适用于传统网站的方法,因为它会阻塞HTML类。但对于基于组件的架构,您可能会在整个应用程序中反复使用相同的按钮。这意味着你只需要为整个网站创建一次按钮。

组件思维

另一个障碍是让你的大脑从传统的网站布局转向基于组件的结构。有两种技巧可以帮助你学会在组件中思考。

原子方法

把网页想象成一个有机体。像英雄部分、价格指南和用户评论这样的部分就像有机体的细胞。无论是否重用,这些部件都可以安全地移动到它们自己的组件中。

molecular structure sculpture

按钮、标题和引号就像原子。原子是可能最小的部分。当进一步分解一个组件没有意义时,那就是一个原子。这些通常是您在整个项目中以及可能在项目之间反复使用的组件。

干法

或者你可以忘记所有的有机体、细胞和原子的无稽之谈,让它保持干燥。DRY代表不要重复你自己。

dry and cracked mud

任何东西,无论大小,都可以是一个组件。所以就照常写你的HTML吧。当你找到一些你想重用的东西时,比如图库或者页脚,把它分解成它自己的组件。

您应该在下一个项目中使用web组件吗?

要考虑的要点是您的团队和web标准。

所有主流浏览器都采用了web组件。CanIUse对自定义组件的采用率为93%,模板的采用率为95%,因此它们是安全的。还有一些不支持web组件的散乱程序的polyfill。这意味着合规性不是问题。

如果您的团队没有框架或JavaScript方面的经验,他们可能很难采用这种新技术。但如果真是这样的话,他们很可能很难采用任**技术。如果你一个人,就去吧!提高你的技能总是个好主意。

采用web组件最困难的部分是缺乏设计框架和学会用组件来思考。但我们已经涵盖了这两个方面。Web组件从2014年就出现了,所以它们不是一种新技术。但它们是一种更好的技术。

  • 发表于 2021-03-30 04:57
  • 阅读 ( 386 )
  • 分类:编程

你可能感兴趣的文章

符号(symfony)和拉威尔(laravel)的区别

...于Symfony是一个PHP web应用程序框架,具有一组可重用的PHP组件和库,而Laravel是基于Symfony的免费、开源的PHP web框架。 Symfony和Laravel是两个流行的PHP框架。这些PHP框架使开发过程比核心PHP更容易、更快、更灵活。此外,它们使开发...

  • 发布于 2020-10-18 18:43
  • 阅读 ( 238 )

是什么vue.js?初学者概述

...前端框架带来某些好处。HTML的字符串替换、基于组件的体系结构和工具都是很好的例子。Vue拥有所有这些好处,以及上面框架部分提到的好处。 ...

  • 发布于 2021-03-30 14:05
  • 阅读 ( 424 )

如何从chrome web store和firefox附加组件库外部安装扩展

...本的Google Chrome和Mozilla Firefox阻止您安装未经批准的附加组件。这是一件好事,有助于阻止恶意软件从您的浏览器。但有时可能需要从CRX或XPI文件安装未经批准的加载项。 这仅适用于有经验的用户。如果您正在开发自己的扩展并...

  • 发布于 2021-04-10 03:50
  • 阅读 ( 196 )

超级分类账资源管理器

...一种简单的可视化。 hyperledger explorer的工作原理 它的体系结构包括一个在后端运行的web服务器,负责与所有其他组件交互并维护必要的查询服务器响应。web套接字用于服务器和Hyperledger Explorer的各种客户端组件之间的通信。...

  • 发布于 2021-06-12 10:52
  • 阅读 ( 127 )

java(java)和j2ee架构(j2ee)的区别

...备(如遥控器、微波炉等)的软件。其理想是开发一种与体系结构无关的语言,可以在各种CPU上的不同环境中工作,最终诞生了Java。随着时间的推移,它已经成为最复杂和功能最强大的编程语言之一,至今仍被广泛使用。 Java重...

  • 发布于 2021-06-25 07:07
  • 阅读 ( 337 )

角度1(angular 1)和角度2(angular 2)的区别

...度1和角度2的架构 Angular2.0完全重写了最初的AngularJS,其体系结构与其前身完全不同。与基于模型-视图-控制器(MVC)的AngularJS不同,Angular2.0完全基于组件,这意味着应用程序由封装良好、松散耦合的组件组成。它们将创建更少...

  • 发布于 2021-06-25 08:35
  • 阅读 ( 194 )

adf公司(adf)和联合攻击机(jsf)的区别

...web的用户界面的开发集成。它基于Model-View-Controller(MVC)体系结构,使用XML视图模板或Facelet视图。它包含多个核心特性,包括基于XML的标记库、托管bean和基于模板的组件系统。 adf与jsf的区别 ADF和JSF基础知识 oracleapplicationdevelo...

  • 发布于 2021-06-25 17:42
  • 阅读 ( 225 )

基于云的(cloud based)和基于服务器(server based)的区别

...网络池的按需访问,而不管云在哪里。另一方面,服务器体系结构是服务器被创建或部署的基本基础。它基本上是指一个网络,在这个网络中,客户机从一个集中的服务器请求并接收服务,然后服务器响应这些请求。它定义了服...

  • 发布于 2021-06-25 18:14
  • 阅读 ( 430 )

.net(.net)和asp.net(asp.net)的区别

...化了创建、调试和部署web应用程序的任务。 NET与ASP.NET的体系结构 .NET Framework是一个托管环境,是一个革命性的平台,用于创建、运行和部署使用.NET技术的应用程序和服务,CLR是监视.NET应用程序执行的核心运行时引擎。它基本...

  • 发布于 2021-06-25 20:25
  • 阅读 ( 343 )

mvc公司(mvc)和视图模型(mvvm)的区别

...型(mvvm)? 模型-视图-视图模型(MVVM)是一种流行的软件体系结构模式,通常用于开发可重用且易于测试的web应用程序。MVVM基于MVC模式,但通过引入一个名为ViewModel的新类来改进MVC模型,该类管理特定于视图的数据。MVVM模型的核...

  • 发布于 2021-06-26 11:06
  • 阅读 ( 189 )
Nietzschesays
Nietzschesays

0 篇文章

相关推荐