1. ピニアとは何ですか? そこでピナの出現がありました vuex との比較:
Pinia のドキュメントには次のように書かれています:
つまり、今 2. Piniaは使いやすいまず、vite+vue+tsプロジェクトを初期化します pnpm create vite pinia-demo -- --template vue-ts piniaをインストールする pnpmとpinia プロジェクトを開き、srcディレクトリのmain.tsファイルを編集し、Piniaをインポートします。 //メイン.ts 'vue' から {createApp} をインポートします。 './App.vue' からアプリをインポートします。 'pinia' から {createPinia} をインポートします createApp(App).use(createPinia()).mount('#app')
'pinia' から {defineStore} をインポートします エクスポートconst useCounterStore = defineStore('counter', { 状態: () => { 戻る { カウント: 0, } }, ゲッター: { ダブルカウント: (状態) => 状態.count * 2、 }, アクション: { インクリメント() { this.count++ }, }, })
エクスポートconst useCounterStore = defineStore('counter', () => { 定数カウント = ref(0) 関数 doubleCount() { count.value * 2 を返す } 関数の増分() { カウント値++ } 戻り値 { count, increment } }) 次に <スクリプト設定 lang="ts"> './store/counter' から { useCounterStore } をインポートします。 定数useCounter = useCounterStore() </スクリプト> <テンプレート> <h2>{{ カウンタを使う }}</h2> <h2>{{ useCounter.count }}</h2> <h2>{{ useCounter.doubleCount() }}</h2> <button @click="useCounter.increment">増加</button> </テンプレート> <スタイル> #アプリ { フォントファミリー: Avenir、Helvetica、Arial、sans-serif; -webkit-font-smoothing: アンチエイリアス; -moz-osx-font-smoothing: グレースケール; テキスト配置: 中央; 色: #2c3e50; 上マージン: 60px; } </スタイル>
ブラウザは次のように実行されます。 開発者ツールを開いて
Pinia には状態を変更する複数の方法があります。
定数 countPlus_1 = useCounter.count++ オプションとコールバック関数の両方をサポートする const countPlus_2 = useCounter.$patch({ count: useCounter.count + 1 }) const countPlus_3 = useCounter.$patch((state) => state.count++) 状態構造には const { count } = storeToRefs(useCounter) 3. ユーザーエクスペリエンス
小規模なプロジェクトの場合、状態管理は利便性と速度を重視しているため(必要ない場合もあります)、vuex は少し複雑です。vue3 が Vuex の代わりに Pinia を使用した Vue 状態管理に関するこの記事はこれで終わりです。Vuex の代わりに Pinia を使用する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: ウェブページの広告デザインにおけるウェブデザインの寸法とルール
>>: Baidu 入力メソッドが API を公開、自由に移植して使用できると主張
フォームのアクションは URL ジャンプとは異なります。フォームはバックグラウンドにデータを渡すこと...
1. バックアップソースリストUbuntu のデフォルトのソースは国内サーバーではないため、更新され...
(Win7 システム) VMware 仮想マシンのインストール チュートリアルVMware は仮想マ...
これは私が以前使用した mysql5.7.18.zip のインストール チュートリアルです。まずこれ...
概要(公式にはより詳しい説明があります) Firewalld は、ネットワーク接続またはインターフェ...
<iframe src=”ページのURL” width=”100″ height=”30″ f...
目次背景element-ui の自動構築はどのように機能しますか?メイクファイル新しい.jsファイル...
インターネット上の this.$set の説明はわかりにくいと感じます。単一データ、オブジェクト、配...
1. データベースを作成する 2. テーブルを作成する1. deptテーブルを作成する テーブル「d...
直接コード: タイプとして「bigint unsigned」、バイトとして「8」、max_numとし...
mysql の存在する例と存在しない例の詳細な説明テーブルA |列1 | 列1 | 列3 |テーブル...
Nginx は、多くの優れた機能を備えた強力で高性能な Web およびリバース プロキシ サーバーで...
最初の解決策は、イメージを公開イメージリポジトリにプッシュし、それをプルダウンすることです。 2 番...
目次1. はじめに2. Viteプロジェクトを作成する1. viteをインストールする2. プロジェ...
背景ご存知のとおり、JavaEE プロジェクトを開発した後は、そのプロジェクトをサーバーの Tomc...