Svelteを使ってみる(2)
Svelteを使ってみる(1) - hinosita's diary で、「Svelte」の導入と簡単なコンパイルの行い方をやってみたので、公式ドキュメント的には次はComponet APIの説明ですね。
各APIの概要と説明は Learn Svelte を読んで頂だければよいかと思うのですが、各APIを実際に動作させるとどうなるかを見ていこうかと。
component.set
こちらのAPIはコンポーネントのdataオブジェクトの値を追加したり、更新したりするAPIですね。
初期状態
let component = new HelloWorld({ target: document.querySelector('main'), data: { name: '太郎', answer: 42 } });
このような感じで、dataオブジェクトがあったとします。
新規データの追加
component.set({ answer2: '50' });
ブラウザの開発モードのコンソールからこのコマンドを打つと、dataオブジェクトが以下のようになります。
data: { name: '太郎', answer: 42, answer2: 50 }
answer2: 50
という値が追加されているのがわかります。
取得できるか以下のコマンドで確認できます。 componet.get
は後ほど説明します。(値を取得するAPIなんですけど。
追加された値の確認
data: { name: '太郎', answer: 42, answer2: 50 }
値の更新
既存のkeyに対して、set
APIを呼ぶと値の更新になります。
component.set({ name: '一郎' });
observer
- observerの設定 値に変更があった際に、何か処理をしたい時などに利用する感じですね。
console.log('answer 変数の初期値'); const observer = component.observe('answer', answer => { console.log(`the answer is ${answer}`); });
このコードだと、answer
の値が更新される度に、console.logが出力されます。
任意のイベントの登録とイベント発火
- 任意のイベント登録
const listener = component.on('thingHappened', event => { console.log(`A thing happened: ${event.thing}`); });
これだけでは、このイベントは実行されません。
次の fire
というAPIでイベント発火させます。
- イベントの発火
component.fire('thingHappened', { thing: 'this event was fired' });
コンポーネントの削除
コンポーネントを削除と、削除した際の後処理を行えるAPIです
component.on('teardown', () => { alert( 'goodbye!' ); });
こちらのサンプルコードだと、コンポーネントが削除され、ブラウザのアラートが表示されます。
このあたりのAPIのサンプルをgithubにあげておりますので、こちらを見ていただければなんとなくイメージできるかと。 私が各APIがどのように動くかを確認するために、サッと書いたコードなので、ほとんどconsoleにしか結果が出ないのですが…