lit-element和React之间的主要区别 反应 W3C Web组件发光元素自定义元素API React的未来?

问题描述

我已经在一些项目中学习并使用“ Lit-element”。但是我之前没有“ React”的工作经验。研究React代码似乎更类似于“ Lit-Element”。有人可以解释“反应”和“发光元素”之间的主要区别是非常有帮助的。

解决方法

反应

(由Facebook开发到现在已有近十年的历史了),主要功能是其 虚拟 DOM。这意味着所有DOM元素都在内存中创建,React负责将它们传递到(真实) DOM 。这也意味着您可以自己进行任何 DOM更新,或使用W3C标准事件系统。
(真实) DOM 中的所有内容均由React处理。
很棒,例如,像Facebook这样,您必须防止成千上万的开发人员在同一个DOM中混乱。 (没有慢速DOM,只有开发人员编写的慢速代码才能访问DOM

W3C Web组件

(由:Apple,Mozilla,Google,Microsoft)

由3种不同的技术组成:

  • 自定义元素API
  • 模板:<template>
  • shadowDOM

每个都可以不使用而使用!

您可以在常规<div>上附加shadowDOM以在类固醇上创建DIV,而无需使用自定义元素或模板。

发光元素

(由Google提供)。是在W3C Web组件技术的顶部上构建的库

!!!您不需要Lit即可开发Web组件!!!

Lit是工具
当您首先学习Lit时,您在学习的是工具而不是Web组件技术

Lit是语法糖(有点像jQuery一样),有很多选择:hyperHTML,uCE,Hybrids,Stencil等。

自定义元素API

W3C自定义元素API(版本V1在所有浏览器中均可用,但Edge自2018年以来已由浏览器制造商Apple,Google,Mozilla和Microsoft开发)。
他们所有人都必须同意,这导致制定标准的进展缓慢;但是 一次 是一种标准,只要在浏览器中运行JavaScript,就支持W3C标准。

Microsoft选择交换浏览器引擎,并让Edge(2020年1月)在Chromium上运行,现在所有现代浏览器都支持自定义元素API。

Custom Elements API是一种 API ,仅此而已,(但功能强大)
将其与框架进行比较就像将Set和Map与Redux或Vuex进行比较。

React的未来?

有趣的部分是React,由于其虚拟 DOM实现,仅支持 71%的W3C自定义元素API(请参见https://custom-elements-everywhere.com/)。 需要为要使用的每个W3C组件创建一个 React包装器。

所有其他框架(Angular,Vue等)做到支持W3C标准100%

这带来了一个有趣的未来。
Facebook,而不是开发浏览器,几乎与浏览器的运行无关。

有人说React是新的Flash(EOL December 31,2020

有人说FaceBook正在合并Instagram,WhatsApp和FaceBook,
然后将提供一个新的浏览器,全世界的每个人必须安装