最简单的SolidJ介绍
#javascript #前端 #发展 #solidjs

想到的第一件事是,这是类别的第一个框架(将再次使用),而对于类别来说,这是第三种框架(想要学习)在2022年的Stateofjs的统计数据中,我们在这里拥有一个真正具有竞争力的框架,它是由Ryan Carniato创造的,Ryan Carniato是React的忠实拥护者,正如他在许多会议上所说的那样。

Ryan Carniato是Netlify的首席工程师,他还是Ebay的Markojs Core Team的成员,他以淘汰赛而闻名,以及他对Reactjs的钦佩。在现场工作了25年之后,他以创建了最具创新性的Solidjs之一的结尾,他于2016年开始,第一个版本是在2021年,所以我们在这里有5年的发展。

反应性:SolidJ的关键概念

在谈论SolidJ中的反应性之前,我们应该对反应性编程有很好的了解,以说明这里的概念是一个简单的典范:

a = b + c
//* where the value of a updates whenever the value of b or c changes.

反应性编程是基于数据流的构建软件系统的范例。而不是将系统视为一系列作业,而是将其视为不断变化的动态方程的集合。该代码指定了各种系统组件之间的交互以及它们随着时间的推移如何发展。通过反应性编程,系统可以自动适应变化而无需持续干预。

现在让我们回到我们在Web开发中的反应性,这是用户界面设计的重要特征,因为它可以确保对界面的更改立即反映。这对于为用户提供一致且敏感的体验至关重要。

反应性一直是专家之间进行大量讨论的主题,他们一直在争论每个框架的反应性,因为典型的反应被称为反应性框架,但对于Hevery Misko(Angularjs的创建者,Angular Ans ans Qwik)) Angular和ReactSJ不是反应性框架。

,但同一个人将谈论SolidJ作为一个反应性框架:

Hevery先生创建了一个名为Qwik的新框架,我们用多篇文章介绍了他的框架的介绍:

在此推文中,Misko先生提到了反应性,细粒度反应性的核心Principe,那是什么?

细粒反应性

细粒反应性是一种在可能的颗粒水平上应用的一种反应性。瑞安·卡尼亚托(Ryan Carniato)在他的著名文章中以一个重要的景象谈论了这一点:

通过原始网络构建了细粒的反应性。通过原始人,我指的是诸如Promises之类的简单构造,而不是JavaScript的原始值,例如字符串或数字。
每个在图中充当节点。您可以将其视为理想的电路。任何更改都适用于所有节点。解决的问题是在一个时间点同步。这是我们在构建用户界面时经常工作的问题空间。
- rean carniate

这是SolidJ的核心概念,为了有一个可靠的理解,我们应该意识到3个重要概念:信号,备忘录和效果。

Image description

信号

信号是我们要观看的元素,它们由getter,setter和值组成。代码的典范:

const [count, setCount] = createSignal(0);

// read a value
console.log(count()); // 0

// set a value
setCount(3);
console.log(count()); //result: 3

效果

所以我们观看的信号是信号,但是谁是看人?它的效果是观察信号,例如PF代码:

Image description

就像我们在这个景象中看到的那样,我们创建的信号是可观察的,效果是观察信号中发生的变化的效果,因此,每当计数变化时,效果就在这里执行指令。

但重要的是,更新是实时发生的。效果已经在记录以下指令之前已经执行。

备忘录

备忘录我们可以将其视为观察者,并且可以同时观察到,换句话说,它结合了信号和效果,这是一个景象:

Image description

在此典范中,备忘录代表了我们在第5行中创建的效果的信号,因此,如果前2个信号之一发生了变化,则备忘录会更改,因此它取决于其依赖关系。

我们可以看到这种方法将为我们节省很多工作,并且不仅限于给出价值关于我们要执行的动作。

结论

Solidjs正如我们所看到的,这是一个革命性的框架,在其中完成了很多工作,本文不涵盖SolidJ中的所有原则主题,但这是该框架的概述以及如何概述有用。

本文提供了细粒反应性的概述,这一概念成为JavaScript前端开发中许多创新的主题。