SolidJS - React spotyka Svelte?

React jest zdecydowanie największym frontendowym frameworkiem Javascript we współczesnym tworzeniu stron internetowych. Chociaż Svelte zyskuje na popularności w ciągu ostatnich kilku lat. Co sprawia, że ​​Svelte jest tak wyjątkowy.

  • Bardzo łatwa do nauczenia składnia
  • Zamiast wysyłać framework do przeglądarki, kod jest kompilowany do standardowego js, ​​co powoduje DUŻO mniejszy rozmiar pakietu i niesamowicie szybki kod.

SolidJS to frontend UI framework, którego składnia jest bardzo podobna do React, ale jest skompilowana do nowoczesnego javascript, takiego jak Svelte, pozwala ludziom uzyskać szybkość i rozmiary pakietów Svelte, ale używa składni React, do której są przyzwyczajeni.

Konfigurowanie projektu SolidJS

Po prostu uruchom następujące polecenie, aby wygenerować nowy projekt…

npm init solid app ProjectName

lub na maszynie

npm init solid app-ts ProjectName

Co to jest to samo

  • Struktura plików wygenerowanego projektu powinna przypominać aplikację „stwórz i zareaguj”
  • JSX nadal działa jak JSX

Więc w Reakcie normalnie używałbyś hooka useState do generowania zmiennej stanu, a proces nadal działa prawie tak samo w SolidJS, z wyjątkiem tego, że teraz używamy funkcji createSignal.

import {createSignal} from "solid-js"
import './App.css';
function App() {
// create state
  const [count, setCount] = createSignal(1)
// add function
  const add = () => {
    //notice in this context I must invoke the state to get the value (not in jsx)
    setCount(count() + 1)
  }
// JSX works like normal
  return (
    <div class="App">
      <h1>My Counter</h1>
      <h2>{count}</h2>
      <button onClick={add}>Add</button>
    </div>
  );
}
export default App;

Cykl życia i createEffect

Tutaj Thinking in Solid bardzo różni się od myślenia w React. W Reakcie cały komponent jest funkcją, która jest uruchamiana ponownie za każdym razem, gdy aktualizujesz stan, umożliwiając nieskończone pętle podczas zmiany stanu wywołań funkcji w treści funkcji komponentu. W Reakcie rozwiązaniem tego problemu jest przeniesienie tego rodzaju kodu do jego własnego zamknięcia za pomocą haka useEffect, aby uruchamiał się w razie potrzeby, a nie na każdym renderowaniu funkcji komponentu.

Solid nie używa wirtualnego DOM i podczas aktualizacji stanu nie uruchamia ponownie funkcji komponentu. Zamiast tego kod Reactive jest zawijany w wywołaniach createEffect, które następnie ponownie uruchamiają funkcję, gdy jakikolwiek sygnał wewnątrz nich zostanie zaktualizowany. Zaletą tego jest…

  • Możesz wykonywać wywołania Fetch / Axios bez konieczności zawijania ich w useEffect, aby uniknąć nieskończonych pętli
  • JSX automatycznie skompiluje się do wywołań createEffect, dlatego zaktualizują się po aktualizacji stanu.

Zaletą tego jest to, że aktualizacje są bardziej szczegółowe, co sprawia, że ​​koszt wirtualnej domeny jest niepotrzebny (tylko kod zależny od zaktualizowanych danych zmieni się bez konieczności przeprowadzania jakichkolwiek porównań).

Podsumowanie

Solid zachowuje to, co najlepsze w składni React, ale także wykorzystuje podejście Svelte do zwiększania wydajności. Nie zdziwiłbym się, gdyby SolidJS rozwijał się w tym samym duchu, co Framework, jak Svelte i React!

Suggested posts

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Wstęp Udar to nagły przypadek medyczny, który może dotknąć każdego w dowolnym momencie. Występuje, gdy przepływ krwi do części mózgu zostaje zakłócony, co prowadzi do nagłej utraty funkcji mózgu.

Jest — potężny framework do testowania JavaScript

Jest — potężny framework do testowania JavaScript

Testowanie jest istotną częścią tworzenia oprogramowania. Zapewnia, że ​​kod jest niezawodny, działa zgodnie z oczekiwaniami i zmniejsza prawdopodobieństwo błędów.

Related posts

zaimki są bardzo przerażające

Uderzyło mnie to nagle, jak to często bywa. Znowu jest w połowie <Nie, nie ten w Pacyfiku, bordowy, ten na karnawale> Każdy nagłówek jest głośny…..

Zabójstwo Jordana Neely'ego i problem „patriotycznego” rasizmu

Czy Stany Zjednoczone mogą zrobić zasadniczy krok, by nie utożsamiać zachowania rasistowskiego z byciem dobrym Amerykaninem?

Zabójstwo Jordana Neely'ego i problem „patriotycznego” rasizmu

[Ostrzeżenie: ten esej zawiera zrzuty ekranowe ludzi wychwalających mordercę Jordana Neely'ego.] Funkcjonariusze organów ścigania w końcu - i być może niechętnie - oskarżyli Daniela Penny'ego, człowieka, który dusił Jordana Neely'ego aż do śmierci, o to zabójstwo.

Powolna erozja: ujawnianie sposobów, w jakie ludzie marnują swoje kariery

Powolna erozja: ujawnianie sposobów, w jakie ludzie marnują swoje kariery

W dzisiejszym dynamicznym i konkurencyjnym świecie kariera odgrywa znaczącą rolę w rozwoju osobistym, stabilności finansowej i ogólnej satysfakcji z życia. Jednak wiele osób wpada w nieustający cykl stagnacji i niezadowolenia, stopniowo marnując swoje życie zawodowe.

Dziennik Ouvert

Dziennik Ouvert

Otwórz pamiętnik: zdjęcie dziennie . Zawsze fascynowały mnie opowieści.