采取状态
React在状态管理方面有点特立独行。虽然它拥有useState
和Context等一流工具,但在响应式全局状态方面,你更多的是靠自己。David Ceddia的“React状态管理库以及如何选择”这篇文章很好地讨论了各种选择。我说它“特立独行”,是因为其他所有主要的JavaScript框架都有自己认可的全局状态实现。
在我看来,状态的概念对于前端开发至关重要。它就像组件一样。它只是一个巧妙的方法来开发数字产品。状态是我们自己对网站上发生事件的抽象。它可以是侧边栏是打开还是关闭,评论数据的列表,登录用户的详细信息,或者我们需要绘制和制作功能性UI的任何其他内容。
这就是为什么原生Web组件根本没有尝试处理状态的概念仍然让我感到惊讶的原因。我没有足够的知识来了解原因,但作为一个观察者,我可以看到开发人员正在努力寻找在Web组件内部和跨Web组件使状态发挥作用的最佳方法。最近,我遇到了Evan You的@vue/lit
。这是一个用于Web组件的微型框架,它使用lit-html解决模板和重新渲染问题,然后结合Vue的响应式状态。在我看来,这看起来很酷。
Evan的想法将使用的库的总大小减少到约6kb。那么我们在这里能做到多小呢?Krasimir Tsonev撰写的“使用JavaScript模块系统进行状态管理”一文中,他们根本没有使用任何库(可以说是沿途创建了一个小的库)。状态管理器可以只是一个我们导入和使用的模块,它本质上是一个包含值、变异函数和侦听器的对象。这将状态管理的开销降低到几乎为零,但代价是放弃了使用更强大的库可以获得的高效重新渲染、更好的模板和生命周期功能。
说到根本不使用任何库,Leo Bauza的“Viget如何使用JavaScript?”一文中,他们介绍了他们在HTML基础之上添加功能所使用的原生模式。看起来所有功能都是通过data-*
属性应用的,每个data
属性都有自己的JavaScript模块(类)来处理该特定功能。这里似乎没有处理全局状态,但他们确实在模块内手动处理状态。
我发现所有这些东西都很有趣。在我的工作中,我敢打赌我相当典型。如果这是一个小型项目,我可能会自己动手。如果它是一个中等规模但影响较小的项目,我可能会选择新奇的——甚至可能是实验性的——方法。但是,一旦我做的事情变得庞大且影响深远,我就会发现从大型玩家中选择更舒服,即使这有时意味着更重的库。?
以上是采取状态的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)
