https://www.baldurbjarnason.com/2024/liskovs-gun/
v0 和 v1 的差异太大,应该导致 SolidJS 作者很怒,间接证明了相比之下还是 React 稳定,毕竟只要 React 19 只要多加一行就能兼容 18。
https://thenewstack.io/how-microsoft-edge-is-replacing-react-with-web-components/
另外还有做的越来越差的 Edge 站台 web component 助攻,从我个人角度解读,应该是一个负面因素(但显然 Edge team 不这样想)
怎么我觉得这两篇文章都是推 Web Component 的。
Web Component 胜在可交互性,现在 js 框架互相不兼容,用 react 写的组件要用在 react 组件里面。兼容也不是不行,只是要做很多适配器,估计没人这么用。而 Web Component 可以用在 erb,也可以用在 react。
我正在写一篇博客,Rails 开发者应该拥抱 Web Component。
作者语气肯定没我说的那么直白,客气了很多,但是说了好几个论点
Web component 已经被主流浏览器支持了。我看了下 caniuse,safari 不支持的只是 is 属性,也就是修改内置元素的能力。现在看来不允许修改是有道理的,各个浏览器内部实现不一样,很难说修改内部元素会产生什么问题。但这个特性不影响 web component 应用。
浏览器 API 的演变就是很缓慢的,通常要落后于第三方框架。但一旦成为标准,其他框架就可以精简一大堆内容。例如 jQuery 和 querySelector,曾经有一个庞大的 jQuery 生态,标准演进后就消亡了。
我不是说 react 会消亡,因为现在有很多应用和生态构建于 react。而是当更多开发者了解 Web component,那么基于 Web 标准构建的组件会越来越多。
你说的 caniuse 肯定是对的,但是作者在文章还提到了 apple 的故意 slow-walk 改进 web,当然这些问题随着 v1 的发布似乎都解决了,而且作者还说一些小框架,特别是 solid.js 作者,很早就开始试图通过采用 web component 从 react 这边抢夺采用率,但是架不住这句:
This is the background that led Ryan Carniato, the author of SolidJS, to write his blog post Web Components Are Not the Future.
毫无疑问,跳反杀伤力最大的还得是曾经的支持者。
我当然对 web component 演讲没有 @Rei 那么深入,不过作为吃瓜群众,觉得这文章还是挺有话题性的,无论如何。。。
v0 这个版本号一看就很不靠谱 😂
v1 是 2017 年提的,也过去很久了。
Lit 3.0 是 2023 年发布的,这个时候我才开始认真考虑。
最近实际在项目里面用了感觉可以了,最大的吸引力是它跟 Turbo 兼容。
嗯,作者后面结尾还是圆了一下,不过标题其实还是反 web component 居多,Liskov’s Gun/Checkov’s gun,我理解的言下之意是既生瑜何生亮,总要留一个的话,还是 React。
这文章写的挺好的,大家可以用 AI 工具尽量反驳我了,毕竟我直接读的原文……
React win, Rails win, Lit win for now.
Hope Rails + Lit
win for tomorrow.
BTW:
https://shoelace.style/tutorials/integrating-with-rails
一个技术是革命性的,就必须要有革命性的观点或者口号。React 有 UI=f(state) 这种近乎于数学公式 F=ma 的口号,且不说对不对,光这个美感就很惊人了
私以为 html 已经很乱了,比如<br> <br/>
可以没有闭合标签,没守住底线,react 类似做了一个补丁,但是浏览器工具支持的统一也是无解问题。。。