litelement 与 React 之间的主要区别
Main differences between lit-element & React
查看 React 代码,它似乎更类似于“Lit-Element”代码,两者都可用于创建 Web 组件。如果有人能解释一下“React”和“Lit-element”之间的主要区别,那将非常有帮助?
Frameworks create HTML, Web Components are HTML
反应
(Facebook 已将近十年),主要特点是其 虚拟 DOM。这意味着所有 DOM 元素都是在内存中创建的,React 负责将它们传递到(真实的)DOM。这也意味着您可以 NOT 做 any DOM 更新自己,或使用 W3C 标准事件系统。
(真实)DOM中的所有内容都由 React 处理。
非常棒,就像 Facebook 一样,您必须防止成千上万的开发人员在同一个 DOM 中乱搞。 (没有慢DOM,只有开发者编写访问DOM的慢代码)
更新 2022 React R18 仍然没有提及自定义 Elements/native Web 组件
W3C 标准 网络组件
(作者:苹果、Mozilla、Google、微软)
由 3 种不同的技术组成:
- 自定义元素API
- 模板:
<template>
- 阴影DOM
一个可以单独使用!
您可以在常规 <div>
上附加阴影 DOM 以创建类固醇 DIV,而无需使用自定义元素或模板。
W3C Web Components 标准事实上 由浏览器制造商 Apple、Google、Mozilla 和 Microsoft 开发。
所有人都必须同意,这导致制定标准进展缓慢;但是 一旦成为 标准,只要 JavaScript 将 运行 在浏览器中支持 W3C 标准。
Web 组件历史(从 2010 年开始):
-
应该看到: Practical lessons from a year of building web components - Google I/O 2016
https://dev.to/this-is-learning/web-components-101-history-2p24
Microsoft 选择交换 Browser-engines 并在 Chromium 上制作 Edge(2020 年 1 月)运行,
现在所有现代浏览器都支持 Web 组件。
Chrome,Safari 和 FireFox 支持的 Web 组件(版本 V1)自 2018 年以来。
一些浏览器(部分)支持现已弃用的 V0 版本的时间更长。
所以对 Web Components 有很多经验。
自定义元素 API 是一个 API,仅此而已,(但强大的)
将其与框架进行比较就像将 Set 和 Map 与 Redux 或 Vuex 进行比较。
模板 很棒,但许多开发人员 copy/paste 博客示例使用 javascript 代码创建 <template>
而不是在 HTML
shadowDOM(以及 SLOT 和 :parts)值得拥有自己的长篇章,
许多开发人员不了解它是什么或如何使用它,但大多数人对此有坚定的看法。
点亮
(按 Google)。是一个基于 W3C Web 组件技术 构建的库
在版本 2.
之前调用了 Lit-Element & Lit-HTML
在点亮之前,Google也有Polymer
!!!您不需要 Lit 来开发 Web 组件!!!
Lit 是一个工具它将加快开发进程。
当您首先学习 Lit 时,您学习的是 工具 而不是 Web 组件 技术
Lit 是 语法糖 (有点像 jQuery 是)
(就像早期 jQuery 天一样)有 50 多个 Lit 选项:
https://webcomponents.dev/blog/all-the-ways-to-make-a-web-component/
React 的未来?
有趣的部分是 React,由于其 virtual DOM 实现,仅支持 71 的 W3C 自定义元素 API %(参见 https://custom-elements-everywhere.com/)。
您需要为您要使用的每个 W3C 组件创建一个 React 包装器。 (参见:https://reactjs.org/docs/web-components.html)
React17 update(2020 年 10 月)甚至没有提到 Web 组件、自定义元素、影子DOM 或模板
[2021 年更新]
我不再阅读 React 更新。但是本尼·鲍尔斯做到了:https://dev.to/bennypowers/what-s-not-new-in-react-18-45c7
WHATWG
非常有趣的事实是 Facebook 没有浏览器,也不是 WHATWG 的核心成员。 自 2019 年以来,WHATWG(读作:Google、苹果、微软、Mozilla)控制着浏览器中的运行:https://techxplore.com/news/2019-06-w3c-whatwg-agreement-version-html.html
框架
全部其他框架(Angular、Vue、Svelte等)do100%支持W3C标准和可以创建 Web组件
这创造了一个有趣的未来。
Facebook,不开发浏览器,几乎没有什么浏览器的利害关系运行。
WHATWG 是by-invitation-only; Google、Apple、Microsoft 和 Mozilla 会邀请 Facebook 吗?
有人说 React 是 te 新 Flash (End Of Life: December 31, 2020)
有人说FaceBook会合并Whatsapp、insTagram和Facebook,
然后将提供一个新的浏览器 everyone in the world must install
关于框架和库
Disclaimer: I built my own motorbikes
框架和库就像您在超市购买的罐头和包装好的食材。
好的,您可以在 table 上用餐。
但是去买杂货,品尝香料,学习如何切、烘烤和烤架,
你会成为一名厨师。
Libraries/Frameworks 的一个问题是:在引入新功能时,新版本中总会有 重大更改。或者当功能不再需要时,因为它们现在是本机的一部分,因此更快的标准(但语法不同)想想 jQuery 选择器和(后来实现的).querySelector
这绝不是 one-click 升级。并且由于您 most-likely 没有为所有这些新功能编写 TDD 测试,您必须再次检查和测试所有代码
或更糟,例如 Angular 1 到 Angular 2“升级”;你必须重写一切...
你可以选择专业Front-End你想成为的开发者
查看 React 代码,它似乎更类似于“Lit-Element”代码,两者都可用于创建 Web 组件。如果有人能解释一下“React”和“Lit-element”之间的主要区别,那将非常有帮助?
Frameworks create HTML, Web Components are HTML
反应
(Facebook 已将近十年),主要特点是其 虚拟 DOM。这意味着所有 DOM 元素都是在内存中创建的,React 负责将它们传递到(真实的)DOM。这也意味着您可以 NOT 做 any DOM 更新自己,或使用 W3C 标准事件系统。
(真实)DOM中的所有内容都由 React 处理。
非常棒,就像 Facebook 一样,您必须防止成千上万的开发人员在同一个 DOM 中乱搞。 (没有慢DOM,只有开发者编写访问DOM的慢代码)
更新 2022 React R18 仍然没有提及自定义 Elements/native Web 组件
W3C 标准 网络组件
(作者:苹果、Mozilla、Google、微软)
由 3 种不同的技术组成:
- 自定义元素API
- 模板:
<template>
- 阴影DOM
一个可以单独使用!
您可以在常规 <div>
上附加阴影 DOM 以创建类固醇 DIV,而无需使用自定义元素或模板。
W3C Web Components 标准事实上 由浏览器制造商 Apple、Google、Mozilla 和 Microsoft 开发。
所有人都必须同意,这导致制定标准进展缓慢;但是 一旦成为 标准,只要 JavaScript 将 运行 在浏览器中支持 W3C 标准。
Web 组件历史(从 2010 年开始):
应该看到: Practical lessons from a year of building web components - Google I/O 2016
https://dev.to/this-is-learning/web-components-101-history-2p24
Microsoft 选择交换 Browser-engines 并在 Chromium 上制作 Edge(2020 年 1 月)运行,
现在所有现代浏览器都支持 Web 组件。
Chrome,Safari 和 FireFox 支持的 Web 组件(版本 V1)自 2018 年以来。
一些浏览器(部分)支持现已弃用的 V0 版本的时间更长。
所以对 Web Components 有很多经验。
自定义元素 API 是一个 API,仅此而已,(但强大的)
将其与框架进行比较就像将 Set 和 Map 与 Redux 或 Vuex 进行比较。
模板 很棒,但许多开发人员 copy/paste 博客示例使用 javascript 代码创建 <template>
而不是在 HTML
shadowDOM(以及 SLOT 和 :parts)值得拥有自己的长篇章,
许多开发人员不了解它是什么或如何使用它,但大多数人对此有坚定的看法。
点亮
(按 Google)。是一个基于 W3C Web 组件技术 构建的库
在版本 2.
之前调用了 Lit-Element & Lit-HTML
在点亮之前,Google也有Polymer
!!!您不需要 Lit 来开发 Web 组件!!!
Lit 是一个工具它将加快开发进程。
当您首先学习 Lit 时,您学习的是 工具 而不是 Web 组件 技术
Lit 是 语法糖 (有点像 jQuery 是)
(就像早期 jQuery 天一样)有 50 多个 Lit 选项:
https://webcomponents.dev/blog/all-the-ways-to-make-a-web-component/
React 的未来?
有趣的部分是 React,由于其 virtual DOM 实现,仅支持 71 的 W3C 自定义元素 API %(参见 https://custom-elements-everywhere.com/)。
您需要为您要使用的每个 W3C 组件创建一个 React 包装器。 (参见:https://reactjs.org/docs/web-components.html)
React17 update(2020 年 10 月)甚至没有提到 Web 组件、自定义元素、影子DOM 或模板
[2021 年更新] 我不再阅读 React 更新。但是本尼·鲍尔斯做到了:https://dev.to/bennypowers/what-s-not-new-in-react-18-45c7
WHATWG
非常有趣的事实是 Facebook 没有浏览器,也不是 WHATWG 的核心成员。 自 2019 年以来,WHATWG(读作:Google、苹果、微软、Mozilla)控制着浏览器中的运行:https://techxplore.com/news/2019-06-w3c-whatwg-agreement-version-html.html
框架
全部其他框架(Angular、Vue、Svelte等)do100%支持W3C标准和可以创建 Web组件
这创造了一个有趣的未来。
Facebook,不开发浏览器,几乎没有什么浏览器的利害关系运行。
WHATWG 是by-invitation-only; Google、Apple、Microsoft 和 Mozilla 会邀请 Facebook 吗?
有人说 React 是 te 新 Flash (End Of Life: December 31, 2020)
有人说FaceBook会合并Whatsapp、insTagram和Facebook,
然后将提供一个新的浏览器 everyone in the world must install
关于框架和库
Disclaimer: I built my own motorbikes
框架和库就像您在超市购买的罐头和包装好的食材。
好的,您可以在 table 上用餐。
但是去买杂货,品尝香料,学习如何切、烘烤和烤架,
你会成为一名厨师。
Libraries/Frameworks 的一个问题是:在引入新功能时,新版本中总会有 重大更改。或者当功能不再需要时,因为它们现在是本机的一部分,因此更快的标准(但语法不同)想想 jQuery 选择器和(后来实现的).querySelector
这绝不是 one-click 升级。并且由于您 most-likely 没有为所有这些新功能编写 TDD 测试,您必须再次检查和测试所有代码
或更糟,例如 Angular 1 到 Angular 2“升级”;你必须重写一切...
你可以选择专业Front-End你想成为的开发者