
Introduction to
@kajetansw
kajetan.dev

Kajetan Świątek
👨🎨 Front-end developer
🇵🇱 Wrocław
Interesting facts
It had 90% satisfaction score
in the State of JS 2021 survey.
Front-end library made
by Ryan Carniato
First public version in 2018,
v1.0 in 2021 
Selling points
🔁 Reactivity 🔁
⚡️ Performance ⚡️



Let's jump to the code!

Components and JSX
import { Component } from 'solid-js';
const App: Component = () => {
  return <p>Hello world!</p>;
};Reactive primitives
import { Component, createSignal, createEffect } from 'solid-js';
const App: Component = () => {
  const [password, setPassword] = createSignal('');
  
  createEffect(() => {
    console.log(password());
  });
  
  return (
    <>
      Password: {password()}	
      <input 
        type="text" 
        onInput={(e) => setPassword(e.currentTarget.value)} 
      />
    </>
  );
};Derived signals
const [count, setCount] = createSignal(0);
const doubleCount = () => count() * 2;Async resources
const fetchUser = async (id) =>
  (await fetch(`https://swapi.dev/api/people/${id}/`)).json();
const App = () => {
  const [userId, setUserId] = createSignal();
  const [user] = createResource(userId, fetchUser);
  return (
    <>
      <input
        type="number"
        onInput={(e) => setUserId(e.currentTarget.value)}
      />
      <span>{user.loading && "Loading..."}</span>
      <span>Username: {user()?.name}</span>
    </>
  );
};Control flow
const App = () => {
  const [loggedIn, setLoggedIn] = createSignal(false);
  const toggle = () => setLoggedIn(!loggedIn())
  
  return (
    <Show
      when={loggedIn()}
      fallback={
        <button onClick={toggle}>Log in</button>
      }
    >
      <button onClick={toggle}>Log out</button>
    </Show>
  );
}- 
	Show
- 
	For
- 
	Switch
Further reading
📚
Thank you!
✋😎
@kajetansw
kajetan.dev

Intro to SolidJS
By Kajetan Świątek
Intro to SolidJS
- 630
 
   
   
  