Social Media Photo by Ryan Stone on Unsplash
This lit-html directive is for use some parts of your templates like an observable (Reactive programming).
Use with RxJs, most.js and xstream or wharever library with Observable and Subject implementation.
Install from NPM or use from Unpkg CDN
Npm
npm install --save lit-directive-reactive
Unpkg
import {subscribeDirective, toSubjectDirective} from 'https://unpkg.com/lit-directive-reactive?module'
Support for AttributePart, BooleanAttributePart, EventPart, NodePart, PropertyPart
Update template Part value with received value on Observable (next method)
- observable: Observable object to subscribe
return template Part of lit-html
import {render, html} from 'lit-html'
import {subscribeDirective} from 'lit-directive-reactive';
import { Observable } from 'rxjs';
const counterObservable = new Observable(subscriber => {
let count = 0;
subscriber.next(count);
setTimeout(() => {
subscriber.next(++count);
}, 1000);
});
render(html`
<span> ${subscribeDirective(counterObservable)} </span>
<input value="${subscribeDirective(counterObservable)}" />
`, window.container);
Currently support for EventPart
Emit event value to Subject
- subject: Subject to emit event value
return template Part of lit-html
import {render, html} from 'lit-html'
import {toSubjectDirective} from 'lit-directive-reactive';
import { Subject } from 'rxjs';
const subject = new Subject();
subject.subscribe(ev => console.log(ev));
render(html`
<button @click=${toSubject(subject)}> +1 </button>
`, window.container);