LoginSignup
9
0

More than 1 year has passed since last update.

別のファイルでグローバルな状態を定義する

JSファイルをViteやWebpackでバンドルする場合に使う書き方を紹介していきます。

覚えること

Alpine.store

これはグローバルな状態を定義するために使います。
以下が基本の形です。x-dataの書き方とほぼ同じです。

Alpine.store('名前', {
    プロパティ: ,
    関数() {
        // 処理
    }
})

これをJSファイルにどのように書けばいいかと言うと、

// alpinejsをインポートする
import Alpine from 'alpinejs'
 
// グローバルなデータを定義する
Alpine.store('darkMode', {
    on: false,
    toggle() {
        this.on = ! this.on
    }
})
 
// v3からインポート後にAlpine.start()を呼び出す必要がある↓
Alpine.start()

$store

これはマジックプロパティと呼ばれる特殊なプロパティの一つです。
これを使えばAlpine.store()で登録した状態を取得できます。

以下が基本の形です

    $store.名前.プロパティ名 or 関数名

これだけで呼び出せます。

使用例

実際にこんな感じで使えます。

See the Pen Untitled by gorimatyan (@gorimatyan) on CodePen.

$storeのところでAlpine.store()で登録したグローバルな値を参照しています。

まとめ

簡単に登録できた。

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0