O tĂtulo do artigo pode parecer um pouco chamativo, no entanto, como o prĂłprio quadro Svelte e as idĂ©ias por trás dele. Se vocĂŞ ainda nĂŁo sabe nada sobre Svelte, aperte o cinto, agora correremos para a revolução.
Observe que este não é um tutorial sobre como iniciar o Svelte. Já existe um excelente guia interativo passo a passo da equipe Svelte que o envolverá no mundo da programação reativa.

Disclaimer: Eu nĂŁo sou uma estrela do rock na programação e nĂŁo sei tudo no mundo. Estou simplesmente entusiasmado com as novas tendĂŞncias que acontecem todos os dias e gosto de falar sobre elas quando posso - foi assim que este artigo apareceu. Seja crĂtico com ela e informe-me se eu escrevi algo ridĂculo.
Ok, agora vamos nos aprofundar no tĂłpico!
Mas primeiro, Reaja
Antes de dizer por que acho que Svelte vai rasgar todo mundo, vamos dar uma olhada neste recente tweet de um homem chamado Dan e tentar entender o que ele quis dizer:

Hmm, por que se chama React entĂŁo?
Mais uma ressalva: este artigo não pretende criticar o React. Decidi usá-lo como exemplo, porque a maioria das pessoas que lia este artigo estava lidando com o React em um ponto ou outro da vida. É só agora que este é o melhor exemplo para contrastar o Svelte.
O que Dan quis dizer e como isso afetou a maneira como escrevemos cĂłdigo agora? Para responder a essas perguntas, deixe-me simplificar como o React funciona sob o capĂ´.
Quando um aplicativo React Ă© renderizado, uma cĂłpia do DOM Ă© colocada em uma estrutura chamada Virtual DOM . Esse DOM virtual medeia entre o cĂłdigo do React e o que o navegador exibe no 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