Sin embargo, el tĂtulo del artĂculo puede parecer un poco llamativo, como el marco Svelte en sĂ y las ideas que están detrás de Ă©l. Si todavĂa no sabes nada sobre Svelte, abrĂłchate el cinturĂłn, ahora nos apresuraremos hacia la revoluciĂłn.
Tenga en cuenta que este no es un tutorial sobre cĂłmo comenzar a usar Svelte. Ya hay una excelente guĂa interactiva paso a paso del equipo de Svelte que lo sumergirá en el mundo de la programaciĂłn reactiva.

Descargo de responsabilidad: no soy una estrella de rock en programaciĂłn y no sĂ© todo en el mundo. Simplemente estoy entusiasmado con las nuevas tendencias que ocurren todos los dĂas, y me gusta hablar de ellas cuando puedo, asĂ es como apareciĂł este artĂculo. SĂ© crĂtico con ella y asegĂşrate de avisarme si escribĂ algo ridĂculo.
Ok, ahora vamos a profundizar en el tema!
Pero primero, reaccionar
Antes de decir por qué creo que Svelte desgarrará a todos, echemos un vistazo a este reciente tweet de un hombre llamado Dan, y tratemos de entender lo que quiso decir:

Hmm, ¿por qué se llama React entonces?
Una advertencia más: este artĂculo no pretende criticar a React. DecidĂ usarlo como ejemplo porque la mayorĂa de las personas que leyeron este artĂculo estaban tratando con React en algĂşn momento de su vida. Es justo ahora que este es el mejor ejemplo para contrastar Svelte.
ÂżQuĂ© quiso decir Dan y cĂłmo afectĂł esto a la forma en que escribimos el cĂłdigo ahora? Para responder a estas preguntas, permĂtanme simplificar cĂłmo funciona React debajo del capĂł.
Cuando se procesa una aplicaciĂłn React, se coloca una copia del DOM en una estructura llamada DOM virtual . Este DOM virtual media entre su cĂłdigo React y lo que muestra el navegador en el DOM.
, (, this.setState
useState
), React , , .
DOM , , . DOM, DOM, , DOM .
, DOM , , React DOM. .
, . React, ( this.setState
), DOM , React (-! ).
Dan, , React . React , . .
, Svelte
Svelte — - , - . DOM , .
, , , JavaScript ? — . .
1.
Svelte — . Svelte — . , Svelte — , JavaScript, DOM - .
-, ? ?  — . , , . , .
Rich Harris YGLF 2019:
Svelte 3.0 API .
? , , React ( ) API, , ( this.setState
useState
) DOM.
this.setState
React ( UI ) , API, .
Svelte .
, Observable. , . , — .
1. (() => {
2. let square = number => number * number;
3.
4. let secondNumber = square(firstNumber);
5. let firstNumber = 42;
6.
7. console.log(secondNumber);
8. })();
, â„–4, secondNumber
firstNumber
, .
, . ? , ( , ).
, , :
1. 'square' ?
- ,
2. 'secondNumber' ?
- 'square' 'firstNumber'. 'square', 'firstNumber', .
3. , 'firstNumber'. 'secondNumber' 'square' 'firstNumber'
- , 'console.log'?
- , .
, , , , .
â„–4, , firstNumber
, , . , â„–5, â„–5, â„–4 .
: , A
B
, B
.
, , Svelte ? JavaScript . : $: foo = bar
. , , , $
foo = bar
( strict mode , foo
).
, Svelte $:
, , . .
! API JavaScript API this.setState
.
:
1. // js
2. let foo = 10;
3. let bar = foo + 10; // bar 20
4. foo = bar // bar 20 ( )
5. bar = foo + 10 // bar 30
6. // svelte js
7. let foo = 10;
8. $: bar = foo + 10; // bar 20
9. foo = 15 // bar 25, foo
, bar
foo
, , bar = foo + 10
, API, this.setState ({bar = foo + 10})
. .
, foo
15
, bar
25
, API, . Svelte .
Javascript , , :
1. //...
2. function instance($$self, $$props, $$invalidate) {
3. let foo = 10; // bar 20
4. $$invalidate('foo', foo = 15) // bar 25, foo
5. let bar;
6. $$self.$$.update = ($$dirty = { foo: 1 }) => {
7. if ($$dirty.foo) { $$invalidate('bar', bar = foo + 10); }
8. };
9. return { bar };
10. }
11. //...
, . .
, foo
, bar
? , Svelte- , .
Svelte . , — .
: â„–4, bar
, EventLoop .
, . , Svelte UI .
2.
, , Svelte , ? React Svelte, :

17 29
, , React.js —  Angular .

, Svelte , , . , —  .
, -. ? , , , ?
, , , . , , React-, .
, API Svelte , .
3.
, , Svelte - . ? , Svelte?
, React , , DOM , DOM , - ( ).
, , React , , . React API, shouldComponentUpdate
, useMemo
, React.PureComponent
..
DOM .
Svelte DOM, DOM ? , Rich Harris YGLF:
— . .
, -, , . , Svelte , .
, Svelte . Svelte Javascript, DOM. , Svelte DOM ?
, (, React) Svelte , - . , React API, , . Svelte =
.
 — , foo
 — =
, Svelte, , , foo
. Svelte DOM, foo
.
, . , Rich Harris .
Svelte 3.0 — , - . , . Svelte , Javascript- .
, , . Svelte React, Angular UI ?
— . Svelte , , , , .
, React -, Svelte , .
!
Svelte: C Telegram