Package Exports
- esor
Readme
Fast, light and modern
All the power of Web Components and more in just 3 KB.
Esor is a lightweight and efficient JavaScript framework for building reactive user interfaces, leveraging native Web Components, signal-based reactivity, and an optimized templating engine.
π₯ Main Features
- Native Web Components: Encapsulated components using Shadow DOM.
- Signal-based Reactivity: Inspired by SolidJS, with functions like
signal,effect, andcomputed. - Declarative Templating: Template syntax similar to lit-html.
- Efficient DOM Reconciliation: Optimized updates without a Virtual DOM.
- Lifecycle & Events: Modular hooks and event management.
- Optimal Speed: Performance-centric architecture.
- Simple API: Familiar patterns from React and SolidJS.
- No Compilation Required.
π More Information
Learn more on our Esor Website β.
π Badges
You can also check out some awesome libraries in the awesome-esor list π.
π¦ Installation
Install Esor using npm or yarn:
npm install esor
# or
yarn add esorβοΈ Basic Usage
Below is an example of a counter using the new API:
import { component, html, signal } from "esor";
component("my-counter", () => {
const count = signal(0);
return html`
<div>
<p>Counter: ${count()}</p>
<button onclick=${() => count(count() + 1)}>Increment</button>
</div>
`;
});Note:
In the new API, thesignalfunction is used to create reactive values. To retrieve the current value, callcount(), and to update it, callcount(newValue).
Use it in your HTML like this:
<my-counter></my-counter>π Documentation
For more detailed information about the API, please check the official documentation.
π«Άπ» Contribute
Contributions are welcome! Please review our Contribution Guidelines before submitting a pull request.
π License
This project is distributed under the MIT license. See the LICENSE file for more details.