Preact - 3kb React'a
Opublikowano ndz 29 listopada 2020 w preact • 2 min read
"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:
Introduction to Preact : A smaller, faster React alternative
What is Preact and when should you consider using it?
Awesome Preact - A curated list of amazingly awesome things regarding Preact ecosystem
YT
Switching from React to Preact (Server-side Rendering with JavaScript Frameworks)
Preact vs. React (Server-side Rendering with JavaScript Frameworks)