Wyszukaj / o blogu

Preact - 3kb React'a

Opublikowano ndz 29 listopada 2020 w preact • 2 min read

preact-logo

"Fast 3kB React alternative with the same modern API. Components & Virtual DOM"

Preact reklamuje się jako lekka (3kb) alternatywa dla Reacta i jest uważany za bibliotekę, która renderuje Virtual-Dom w wyjątkowo, krótkim czasie.

Preact stawia na:

  • wydajność (szybką)
  • rozmiar (mały)
  • efektywne wykorzystanie pamięci (wysoka)
  • niski próg zrozumienia kodu
  • zgodność z React API (moduł opakowujący Preact -> preact-compat)

Ze względu na swoją "lekkość" Preact wykorzystywany jest do tworzenia mobilnych stron (np. Uber) - tym samym stara się zniwelować jeden z problemów biblioteki React.

p(PREACT)

0) nie wykorzystuje Syntetycznych wydarzeń, wykorzystuje ‘addEventListener’

1) className (React) => class (Preact)

2) this.props i this.state jest przekazywany jako arg do render()

    class Droid extends Component {
        constructor () {
            super();
            this.state = {
                message: 'I Suggest A New Strategy, R2 - Let The Wookiee Win.'
            };
        }
        render(props, {message}) {
          return (
            <div>
                <p class="droid-message">{message}</p>
            </div>
          )
        }
    }

Preact korzysta z hyperscriptu - który na podstawie JSX tworzy Virtualny DOM (jak React.createElement)

import { h, Component } from 'preact';
import { useState } from 'preact/hooks';

const Counter = () => {
  const [count, setCount] = useState(0);
  const increment = () => setCount(count + 1);
  const decrement = () => setCount(count - 1);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increment}>Increment</button>
      <button onClick={decrement}>Decrement</button>
    </div>
  )
}

źródło powyższego przykładu: What is Preact and when should you consider using it?


preact-compat

preact-compat jest modułem, który pozwala na współpracę Preacta z modułami przygotowanymi dla Reacta

# instalacja preacta
npm i --save preact

# instalacja preact-compat
npm i --save preact-compat

czytaj więcej na ten temat na GH repo projektu


Preact CLI

# instalacja globalna preact-cli (command-line interface)
npm install -g preact-cli

# utworzenie projektu, default odwołuje się do wybranego szablonu (np. material, simple,typescript)
npx preact create default my-project

# wejdź do utworzonego folderu
cd my-project

# uruchom serwer deweloperski
npm run dev

# ew. stworzenie template.html w folderze src oraz poinformowani Preacta o tym
preact watch --template src/template.html

Preact i TypeScriptu

Do treści tsconfig.json należy dodać:

// TypeScript >= 4.1.1
{
  "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "preact",
    //...
  }
}

czytaj więcej: TypeScript - Preact ships TypeScript type definitions, which are used by the library itself!


Źródła:

PREACT- documentation

Introduction to Preact : A smaller, faster React alternative

What is Preact and when should you consider using it?

GH repo - Preact

Awesome Preact - A curated list of amazingly awesome things regarding Preact ecosystem

fettblog.eu - Go Preact!

YT

Switching from React to Preact (Server-side Rendering with JavaScript Frameworks)

Preact vs. React (Server-side Rendering with JavaScript Frameworks)

No-Build, Minimal-Dependency Webapps with Preact