RxJSをブラウザ上だけ(npm / Node.jsなし)で使ってみる
ドキュメントを見ていると、jQueryなどのようにscriptタグを使ってRxJSを動かすこともできる様子でした。 ということで、どこで使うのかはわかりませんが一度npm / Node.jsを使わずに触ってみます。 Rx […]
広告ここから
広告ここまで
目次
ドキュメントを見ていると、jQueryなどのようにscriptタグを使ってRxJSを動かすこともできる様子でした。
ということで、どこで使うのかはわかりませんが一度npm / Node.jsを使わずに触ってみます。
RxJS本体を読み込む
unpkg.comから配信されていますので、それを使います。
<html>
<head>
<title>example RxJS project</title>
</head>
<body>
<button>Button</button>
<script src="https://unpkg.com/@reactivex/[email protected]/dist/global/rxjs.umd.js"></script>
<script src="/script.js"></script>
</body>
</html>
/script.js
にはこれからコードを書くので、ただファイルを置くだけにします。
RxJSのコードを書く
またObservableしてみる
Observe / subscribeにまだ慣れていないので、とりあえずやってみましょう。
// この行はなくても動く
const rxjs = window.rxjs
const subscriber = (observer) => {
observer.next(1)
observer.next(2)
observer.next(3)
observer.next(4)
}
const observable = rxjs.Observable.create(subscriber)
observable.subscribe({
next: x => console.log('got: ' + x),
error: err => console.log(err),
complete: comp => console.log('com: %j', comp)
})
これでブラウザからHTMLファイルを開くとログが出力されます。
ボタンクリックから実行してみる
せっかくHTMLを書いているので、「ボタンをクリックしたら動く」サンプルも書いてみましょう。
// この行はなくても動く
const rxjs = window.rxjs
const button = document.querySelector('button');
rxjs.fromEvent(button, 'click')
.subscribe(
(event) => {
alert(`${event.target.textContent} is clicked!!`);
}
);
fromEvent
でクリックイベントをターゲットにしました。これでボタンをクリックしするとJSが実行されます。
雑なまとめ
- unkpg.comを使えばnpm / NodeなしでもRxJSは動かせる
new Observable(subscriber)
=>rxjs.Observable.create(subscriber)