Nuxt Nation カンファレンスが開催されます。11月12日〜13日にご参加ください。

harlem
@nuxtjs/harlem

Harlemは、Vue 3用のシンプルで、特定の思想に偏らず、軽量で拡張可能な状態管理ソリューションです。

@nuxtjs/harlem

npm versionnpm downloadsGithub Actions CICodecovLicense

HarlemNuxt 統合

Harlemは、Vue 3用のシンプルで、特定の思想に偏らず、軽量で拡張可能な状態管理ソリューションです。あらゆる規模のプロジェクトと、あらゆる経験レベルの開発者に対応するように設計されています。

機能

  • 👌 設定不要
  • 🐨 シンプルで関数型の状態管理
  • 🧱 簡単に拡張可能
  • 💯 Nuxt 3をサポート

クイックセットアップ

  1. @nuxtjs/harlem 依存関係をプロジェクトに追加します
yarn add @nuxtjs/harlem # or npm install @nuxtjs/harlem
  1. @nuxtjs/harlemnuxt.config.tsmodules セクションに追加します
  2. ストアの作成と使用方法については、Harlemガイドに従ってください。
    : createStore は、使用する場所で自動的にインポートされるため、自分でインポートする必要はありません。

最小限の例を次に示します。追加の手順なしで、これをアプリにコピーして貼り付けることができます。

~/stores/user.ts

const STATE = {
  firstName: 'John',
  lastName: 'Smith',
}

export const { state, getter, mutation, ...store } = createStore('user', STATE)

export const fullName = getter('fullName', state => {
  return `${state.firstName} ${state.lastName}`
})

export const setFirstName = mutation<string>('setFirstName', (state, payload) => {
  state.firstName = payload
})

export const setLastName = mutation<string>('setLastName', (state, payload) => {
  state.lastName = payload
})

~/app.vue

<template>
  <div class="app">
    <h1>Hello {{ fullName }}</h1>
    <input v-model="firstName" type="text" placeholder="First name" />
    <input v-model="lastName" type="text" placeholder="Last name" />
  </div>
</template>

<script lang="ts" setup>
  import { state, fullName, setFirstName, setLastName } from '~/store/user'

  const firstName = computed({
    get: () => state.firstName,
    set: value => setFirstName(value),
  })

  const lastName = computed({
    get: () => state.lastName,
    set: value => setLastName(value),
  })

  setLastName('Doe')
</script>

詳細と例については、Harlemドキュメントリポジトリをご覧ください。

開発

  • このリポジトリをクローンします
  • corepack enable を使用して Corepack を有効にします(Node.js < 16.10の場合は npm i -g corepack を使用します)
  • pnpm install を使用して依存関係をインストールします
  • pnpm prepare を実行して、タイプスタブを生成します。
  • 開発モードでプレイグラウンドを起動するには、pnpm dev を使用します。

ライセンス

MITライセンス