javascript - Hvilke typer ytelsesfordeler får Svelte ved å ikke ha et virtuelt DOM?


Jeg har et spørsmål om Svelte. Hvis Svelte ikke bruker Virtual DOM eller Shadow DOM-mekanismen, hvordan genererer det høyytelsesapplikasjoner? Fordi Svelte bare er en kompilator som genererer ren JavaScript-kode, er dette det eneste man får ut av Svelte - å konvertere til ren JavaScript-kode vil gi deg høyytelsesapplikasjoner? Hvorfor bruker da React eller Angular mekanismer som Virtual DOM eller Shadow DOM?

Jeg vet at dette ikke er et kodespørsmål, men jeg ville ha svaret, så jeg publiserte det bare her. Vennligst slett ikke eller fjern dette innlegget. Jeg vil forstå det interne.

Takk

Svar #1

For de fleste brukstilfeller er Svelte raskere enn React/Angular.

Dette er fordi Svelte ikke bruker virtuell DOM. Kjerneverdiløftet til Svelte-rammeverket er å eliminere overhead fra virtuell DOM.

Overheadet fra det virtuelle DOM kommer fra det faktum at et rammeverk må konstruere noder i et separat format og deretter utføre en differensiering.

Svar #2

  • I react.js vil nettleseren laste react library, reactDOM og deretter laste prosjektkoden. Dette gjør react-prosjektet større i størrelse. Herfra

Svelte-implementeringen av TodoMVC veier 3,6 kb komprimert. Til sammenligning veier React pluss ReactDOM uten noen app-kode omtrent 45 kb komprimert. Det tar omtrent 10 ganger så lang tid for nettleseren bare å evaluere React som det gjør for Svelte å være oppe og kjøre med en interaktiv TodoMVC.

  • svelte-apper har mindre kode. Herfra:

All kode er feilaktig. Det er derfor rimelig å anta at jo mer kode du må skrive, desto mer feilaktige vil appene dine bli.

Å skrive mer kode tar også mer tid, og gir mindre tid til andre ting som optimalisering, fine-å-ha-funksjoner, eller å være ute i stedet for å sitte krumbøyd over en laptop.

  • Svelte er en kompilator. Den kjører ikke i nettleseren. Den kompilerte koden vil direkte endre DOM uten overhead fra virtual DOM. Du kan lese at Virtual DOM er ren overhead