chore: add README.md
This commit is contained in:
parent
7bfd2ab15a
commit
fe18afa77a
2 changed files with 41 additions and 0 deletions
41
README.md
Normal file
41
README.md
Normal 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>
|
||||
```
|
||||
|
||||

|
BIN
assets/wc-feeling.gif
Normal file
BIN
assets/wc-feeling.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 85 KiB |
Loading…
Reference in a new issue