SolidJS - React meets Svelte?

React ist mit Abstand das größte Frontend-Javascript-Framework in der modernen Webentwicklung. Obwohl Svelte in den letzten Jahren immer beliebter wurde. Was macht Svelte so besonders?

  • Sehr einfach zu erlernende Syntax
  • Anstatt das Framework an den Browser zu senden, wird der Code in Standard-js kompiliert, was zu VIEL kleinerer Bundle-Größe und blitzschnellem Code führt.

SolidJS ist ein Frontend-UI-Framework, dessen Syntax React sehr ähnlich ist, das jedoch mit modernem Javascript kompiliert wurde, so dass Svelte es Benutzern ermöglicht, die Geschwindigkeit und Bundle-Größen von Svelte zu ermitteln, aber die gewohnte React-Syntax zu verwenden.

Einrichten eines SolidJS-Projekts

Führen Sie einfach den folgenden Befehl aus, um ein neues Projekt zu generieren…

npm init solid app ProjectName

oder für Typoskript

npm init solid app-ts ProjectName

Was ist das gleiche

  • Die Dateistruktur des generierten Projekts sollte sich wie eine Create-React-App anfühlen
  • JSX funktioniert immer noch wie JSX

In React würden Sie normalerweise den useState-Hook verwenden, um eine Statusvariable zu generieren, und der Prozess funktioniert in SolidJS immer noch ziemlich gleich, außer dass wir jetzt die Funktion createSignal verwenden.

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;

Lebenszyklus und createEffect

Hier unterscheidet sich Thinking in Solid stark vom Denken in React. In React ist die gesamte Komponente eine Funktion, die jedes Mal neu ausgeführt wird, wenn Sie Statusaktualisierungen vornehmen, wodurch Endlosschleifen möglich werden, wenn der Status bei Funktionsaufrufen im Funktionskörper der Komponente geändert wird. In React besteht die Lösung hierfür darin, diese Art von Code mit dem useEffect-Hook in einen eigenen Abschluss zu verschieben, damit er bei Bedarf nicht bei jedem Rendering der Komponentenfunktion ausgeführt wird.

Solid verwendet kein virtuelles DOM und führt bei Statusaktualisierungen die Komponentenfunktion nicht erneut aus. Stattdessen wird reaktiver Code in createEffect-Aufrufe eingeschlossen, die die Funktion erneut ausführen, wenn ein Signal in ihnen aktualisiert wird. Der Vorteil davon ist…

  • Sie können Fetch / Axios-Aufrufe tätigen, ohne sie in useEffect einschließen zu müssen, um Endlosschleifen zu vermeiden
  • JSX wird automatisch in createEffect-Aufrufe kompiliert, weshalb sie bei Statusaktualisierungen aktualisiert werden.

Das Schöne daran ist, dass Aktualisierungen detaillierter sind, sodass die Kosten für einen virtuellen Dom nicht mehr erforderlich sind (nur Code, der von den aktualisierten Daten abhängt, ändert sich, ohne dass Vergleiche durchgeführt werden müssen.)

Endeffekt

Solid behält das Gute an der React-Syntax bei, nutzt aber auch die leistungssteigernden Ansätze von Svelte. Es würde mich nicht wundern, wenn SolidJS in der gleichen Richtung wie Svelte und React wächst!

Suggested posts

Die verheerenden Folgen eines Schlaganfalls vermeiden: Aus der Reise einer Familie lernen.

Die verheerenden Folgen eines Schlaganfalls vermeiden: Aus der Reise einer Familie lernen.

Einleitung Ein Schlaganfall ist ein medizinischer Notfall, der jeden jederzeit treffen kann. Sie tritt auf, wenn die Durchblutung eines Teils des Gehirns gestört ist, was zu einem plötzlichen Verlust der Gehirnfunktion führt.

Jest – Ein leistungsstarkes JavaScript-Test-Framework

Jest – Ein leistungsstarkes JavaScript-Test-Framework

Testen ist ein wesentlicher Bestandteil der Softwareentwicklung. Dadurch wird sichergestellt, dass der Code zuverlässig ist, wie erwartet funktioniert und die Fehlerwahrscheinlichkeit verringert wird.

Related posts

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Sie können ein OSINT-Ermittler, ein CTF-Spieler oder einfach jemand sein, der Spam-Anrufe erhält. Jemand, der versucht, die Nummer zu bestätigen, die Sie in einer Anzeige gesehen haben.

Der Mord an Jordan Neely und das Problem des „patriotischen“ Rassismus

Können die USA den entscheidenden Schritt tun, rassistisches Verhalten nicht mit der Identität eines guten Amerikaners gleichzusetzen?

Der Mord an Jordan Neely und das Problem des „patriotischen“ Rassismus

[Alarm auslösen: Dieser Aufsatz enthält Screenshots von Menschen, die den Mörder von Jordan Neely loben.] Polizeibeamte haben endlich – und vielleicht widerstrebend – Daniel Penny, den Mann, der Jordan Neely bis zu seinem Tod gewürgt hat, wegen dieses Mordes angeklagt.

Die Workplace-Revolution: Top-Experten diskutieren über Hybrid- und Remote-Arbeit

Die Workplace-Revolution: Top-Experten diskutieren über Hybrid- und Remote-Arbeit

In der sich schnell entwickelnden Geschäftslandschaft von heute hat das Konzept der Hybrid- und Remote-Arbeit eine beispiellose Dynamik erlangt. Während sich Unternehmen weiterhin an die sich verändernden Bedürfnisse und Erwartungen ihrer Mitarbeiter anpassen, sind Experten aus verschiedenen Bereichen zusammengekommen, um die Vorteile, Herausforderungen und die Zukunft dieser transformativen Arbeitsweise zu diskutieren.

Was Sie in Ihrer Wartezeit tun können (Warten auf Ihren ersten Job in der Technikbranche)

Was Sie in Ihrer Wartezeit tun können (Warten auf Ihren ersten Job in der Technikbranche)

Der Wechsel in eine neue Karriere kann eine große Herausforderung sein, wenn man es alleine versucht. Es ist wichtig, Verantwortungspartner zu finden, die sich auf dem gleichen Lernniveau wie Sie befinden und ähnliche Ziele, Hartnäckigkeit und Tatendrang haben.