目次
ピニアとは何ですか?
を必ず確認してください)。まずストアを作成します:
と発音) が最も近いです piña (スペイン語では
をすべて読むことをお勧めします。
RFC
Vuex 3.x/4.x
ホームページ ウェブフロントエンド Vue.js ピニアとは何ですか? Vueでどうやって使うの?

ピニアとは何ですか? Vueでどうやって使うの?

Feb 09, 2022 am 10:58 AM
pinia vue

ピニアとは何ですか?ピニアを使用する理由この記事では、pinia の紹介と、pinia の基本的な使い方を例を交えて紹介しますので、お役に立てれば幸いです。

ピニアとは何ですか? Vueでどうやって使うの?

ピニアとは何ですか?

Pinia は元々、 Composition API を使用して Vue ストアの外観を再設計するための 2019 年 11 月頃の実験でした。それ以降、元の原則は同じですが、Pinia は Vue 2 と Vue 3 の両方で動作し、コンポジション API を使用する必要はありません。 SSR のインストールを除けば、両方の API は同じであり、ドキュメントは Vue 3 に固有であり、 では Vue 2 と SSR に必要な箇所に Vue 2 に関するメモが記載されています。 Vue 3ユーザーなら読める! [関連する推奨事項: vue.js ビデオ チュートリアル

]

Ponia を使用する理由

Pinia は、コンポーネント/ページ間で状態を共有できる Vue のリポジトリです。 ç これは単一ページ アプリケーションの場合に当てはまりますが、サーバー側でレンダリングされる場合、 アプリケーションがセキュリティの脆弱性にさらされることになります。

ただし、単一ページの小さなアプリケーションであっても、Ponia を使用すると多くのメリットが得られます。
  • 開発ツールはアクションの追跡をサポートします。突然変異タイムライン
    • ストアは、それを使用するコンポーネントに表示されます
    • タイムトラベルとデバッグの容易化
  • ホット モジュールの交換
  • ページを再読み込みせずにストアを変更します
    • 開発中に既存の状態を維持します
  • プラグイン: プラグインを使用して Ponia の機能を拡張します
  • JS ユーザーに適切な TypeScript サポートを提供する、または
  • オートコンプリート機能を提供する

    #サーバー側レンダリングのサポート
  • # #基本的な例

  • API 的には pinia を使用すると次のようになります (完全な手順については、
「はじめに」

を必ず確認してください)。まずストアを作成します:

// stores/counter.js
import { defineStore } from 'pinia'

export const useCounterStore = defineStore('counter', {
  state: () => {
    return { count: 0 }
  },
  // could also be defined as
  // state: () => ({ count: 0 })
  actions: {
    increment() {
      this.count++
    },
  },
})
ログイン後にコピー

それからコンポーネント それを使用します:

import { useCounterStore } from '@/stores/counter'

export default {
  setup() {
    const counter = useCounterStore()

    counter.count++
    // with autocompletion ✨
    counter.$patch({ count: counter.count + 1 })
    // or using an action instead
    counter.increment()
  },
}
ログイン後にコピー

また、関数を使用することもできます (コンポーネント setup( ) ) より高度なユースケース向けにストアを定義するには:

export const useCounterStore = defineStore('counter', () => {
  const count = ref(0)
  function increment() {
    count.value++
  }

  return { count, increment }
})
ログイン後にコピー

まだ setup()Composition API に慣れていない場合でも、心配しないでください。Ponia はVuex

などの

##Map Assistant の同様のセット。ストレージも同じ方法で定義しますが、mapStores()mapState()、または mapActions() を使用します。各 マップ アシスタントの詳細については、「コア コンセプト」を参照してください。

ピニアを選ぶ理由

ピニア (英語の「ピーニャ」のように

/piːnjʌ/

と発音) が最も近いです piña (スペイン語では

pineapple

)。これは有効なパッケージ名です。パイナップルは、実際には個々の花が集まって複数の果実を形成するグループです。店舗と同じように、それぞれが独立して生まれますが、最終的にはすべてがつながっています。南米原産のおいしいトロピカルフルーツでもあります。 より現実的な例これは、JavaScript でも Ponia の型を使用する API のより完全な例です。人によっては、これ以上読まなくても十分に始めることができるかもしれませんが、ドキュメントの残りの部分を確認するか、この例をスキップして

Core Concepts

をすべて読むことをお勧めします。

const useCounterStore = defineStore('counter', {
  state: () => ({ count: 0 }),
  getters: {
    double: (state) => state.count * 2,
  },
  actions: {
    increment() {
      this.count++
    }
  }
})

const useUserStore = defineStore('user', {
  // ...
})

export default {
  computed: {
    // other computed properties
    // ...
    // gives access to this.counterStore and this.userStore
    ...mapStores(useCounterStore, useUserStore)
    // gives read access to this.count and this.double
    ...mapState(useCounterStore, ['count', 'double']),
  },
  methods: {
    // gives access to this.increment()
    ...mapActions(useCounterStore, ['increment']),
  },
}
ログイン後にコピー

Vuex との比較Pinia は、できる限り Vuex の哲学に近づけようとしています。これは、Vuex の次のイテレーションに向けた提案をテストするように設計されており、現在、Ponia が使用するものと非常によく似た API を備えた Vuex 5 のオープン RFC が存在するため、成功しました。 Pinia の作者である私 (Eduardo) は Vue.js コア チームの一員であり、Router や Vuex などの API の設計に積極的に参加していることに注意してください。このプロジェクトにおける私の個人的な意図は、Vue の親しみやすい哲学を維持しながら、グローバル ストアの使用体験を再設計することでした。私は、人々が Vuex に移行しやすく、将来的には 2 つのプロジェクト (Vuex の下で) をマージしやすくするために、Ponia の API を Vuex にできるだけ近づけて前進し続けます。

RFC

Vuex は RFC を通じてコミュニティから可能な限り多くのフィードバックを収集しますが、Ponia は収集しません。私は、アプリの開発、他の人のコードの読み取り、Pinia を使用したクライアントでの作業、Discord での質問への回答などの経験に基づいてアイデアをテストします。これにより、さまざまな状況やアプリケーションの規模にわたって機能する効率的なソリューションを提供できるようになります。私は頻繁にリリースし、コア API を変更せずにライブラリを進化させ続けます。

Vuex 3.x/4.x

Vuex 3.x は Vuex の Vue 2 であり、Vuex 4.x は Vuex 3

Ponia API は Vuex ≤4 とは大きく異なります。つまり、

  • Mutation は存在しません。 非常に冗長とみなされることがよくあります。彼らは当初 devtools の統合を導入しましたが、それはもはや問題ではありません。
  • TypeScript をサポートするためにカスタムの複雑なラッパーを作成する必要はなく、すべてが型指定されており、API は可能な限り TS 型推論を活用するように設計されています。
  • マジック文字列を挿入したり、関数をインポートしたり、呼び出したりする必要はもうありません。オートコンプリートをお楽しみください。
  • ストアを動的に追加する必要はありません。ストアはすべてデフォルトで動的であるため、気付かないほどです。ストアを使用していつでも手動でサインアップできますが、これは自動であるため、心配する必要はありません。
  • モジュールの入れ子構造はもう必要ありません。別のストア内でストアをインポートして using することで、暗黙的にストアをネストすることもできますが、Pinia は、ストア間の相互組み合わせをサポートしながら、設計によりフラットな構造を提供します。 ストアに対して循環依存関係を持つこともできます
  • モジュール (名前空間なし)。ストアのフラットなアーキテクチャを考慮すると、「名前空間付き」ストアはその定義方法に固有のものであり、すべてのストアが名前空間付きであると言えるでしょう。

既存の Vuex ≤4 プロジェクトを変換して Pinia を使用する方法の詳細については、Vuex からの移行ガイドを参照してください。

プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !

以上がピニアとは何ですか? Vueでどうやって使うの?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

怠zyなロードVUEとはどういう意味ですか? 怠zyなロードVUEとはどういう意味ですか? Apr 07, 2025 pm 11:54 PM

Vue.jsでは、Lazy Loadingを使用すると、コンポーネントまたはリソースを必要に応じて動的にロードすることができ、初期ページの読み込み時間を短縮し、パフォーマンスを改善できます。特定の実装方法には、< Keep-Alive>および<コンポーネントは>コンポーネント。怠zyなロードは、FOUC(スプラッシュ画面)の問題を引き起こす可能性があり、不必要なパフォーマンスのオーバーヘッドを避けるために怠zyなロードが必要なコンポーネントにのみ使用する必要があることに注意してください。

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

Vueはマーキー/テキストスクロール効果を実現します Vueはマーキー/テキストスクロール効果を実現します Apr 07, 2025 pm 10:51 PM

CSSアニメーションまたはサードパーティライブラリを使用して、VUEでマーキー/テキストスクロール効果を実装します。この記事では、CSSアニメーションの使用方法を紹介します。スクロールテキストを作成し、テキストを< div>をラップします。 CSSアニメーションを定義し、オーバーフローを設定します:非表示、幅、アニメーション。キーフレームを定義し、アニメーションの開始と終了時にtranslatex()を設定します。期間、スクロール速度、方向などのアニメーションプロパティを調整します。

Vueのバージョンを照会する方法 Vueのバージョンを照会する方法 Apr 07, 2025 pm 11:24 PM

Vue Devtoolsを使用してブラウザのコンソールでVueタブを表示することにより、Vueバージョンを照会できます。 NPMを使用して、「NPM List -G Vue」コマンドを実行します。 package.jsonファイルの「依存関係」オブジェクトでVueアイテムを見つけます。 Vue CLIプロジェクトの場合、「Vue -Version」コマンドを実行します。 < script>でバージョン情報を確認してくださいVueファイルを参照するHTMLファイルにタグを付けます。

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes< router-link to ="/" Component Window.history.back()、およびメソッド選択はシーンに依存します。

See all articles