chore: add README.md

This commit is contained in:
Ayo 2023-09-16 22:58:22 +02:00
parent 7bfd2ab15a
commit fe18afa77a
2 changed files with 41 additions and 0 deletions

41
README.md Normal file
View file

@ -0,0 +1,41 @@
# Web Component Base Class
This is a base JavaScript class for creating Web Components easily.
When you extend the 'WebComponent' class for your component, you only have to define the `template()` and `observedAttributes()`, and the UI will be reactive on attribute changes.
```js
import { WebComponent } from "./WebComponent.mjs";
export class HelloWorld extends WebComponent {
name = "World";
emotion = "excited";
static get observedAttributes() {
return ["name", "emotion"];
}
get template() {
return `
<h1>Hello ${this.name}${
this.emotion === 'sad'
? '. 😭'
: '! 🙌'
}</h1>
}
}
```
Then changes in the attributes observed will cause the UI to render.
```html
<hello-world name="Ayo" emotion="sad">
<script>
const helloWorld = document.querySelector('hello-world');
setTimeout(() => {
helloWorld.setAttribute('emotion', 'excited');
}, 2500)
</script>
```
![UI showing feeling toward Web Components changing from SAD to EXCITED](./assets/wc-feeling.gif)

BIN
assets/wc-feeling.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB