ホームページ ウェブフロントエンド jsチュートリアル 簡単な vuex とモジュール化を学ぶ

簡単な vuex とモジュール化を学ぶ

Jan 16, 2018 am 09:18 AM
vuex モジュラー 単純

Vuex は単一の状態ツリーの使用を重視しています。つまり、プロジェクト内にストアが 1 つだけ存在し、このストアがプロジェクト内のすべてのデータとそのデータに対する操作を集中管理します。しかし、これが引き起こす問題は、ストアが非常に肥大化して保守が困難になる可能性があるため、状態ツリーをモジュールに分割する必要があることです。

チュートリアルの例

この例は、vue-cli に基づいて構築されています。以下は、src ファイルの下のコンテンツ ディレクトリです。

├── App.vue
├── components // 组件文件夹
│ ├── tab1.vue
│ ├── tab2.vue
│ ├── tab3.vue
│ └── tab4.vue
├── main.js // vue的主文件入口
├── router // vue-router文件
│ └── index.js
└── store // vuex文件
 ├── action.js // action
 ├── getter.js // getter
 ├── index.js // vuex的主文件
 ├── module // 模块文件
 │ ├── tab2.js
 │ └── tab3.js
 ├── mutation-type.js // mutation常量名文件
 └── mutation.js // mutation
ログイン後にコピー

効果はこんな感じです(シンプルさを嫌いにしないでください)

この例では、モジュール関連の知識を含む、基本的に一般的な、ドキュメントで言及されているすべての vuex 関連の知識を使用しました。使用シナリオは次のとおりです。すべてカバーされています。

これ以上ナンセンスはありません、始めましょう。

まず、app.vue と router はルーティングに関連するもので、ドキュメントを見れば理解できます。

vuex のモジュール化

この例を書く前に、私は最初はかなり新鮮でした。結局のところ、vuex はこれまでのプロジェクトでは深く使用されていませんでした。 vuex を含む js で機能はすべて完成しましたが、プロジェクトが複雑な場合は確かにこのように書くことはできません。そのため、この点についてのアイデアを明確にするためにサンプルを書きたいと思いました。結果は非常に簡単です。

ストア ファイルのコンテンツは、vuex の 5 つの中心的な概念に従って構築されており、そうすることの利点は、mutation.js や mutation-type.js など、ビジネス ロジックの整理やその後のメンテナンスに非常に便利です。

ミューテーション内のメソッド名を定数として抽出し、別のファイルに置き、使用するときに関連するコンテンツを引用します。これは、どのメソッドが存在するかを管理および理解するのが非常に簡単で、非常に直感的です。一方、アクションを使用する必要がある場合もあります。同じメソッド名を使用して、定数ファイルを導入するだけで済みます。

// mutation-type.js

const CHANGE_COUNT = 'CHANGE_COUNT';


export default {
 CHANGE_COUNT
}
ログイン後にコピー
これはどうですか、ファイルに書くほど面倒ではないようです。

...mapGetters と...mapActions


tab1.vue 内:

// mutation.js

import type from './mutation-type'

let mutations = {
 [type.CHANGE_COUNT](state) {
 state.count++
 }
}

export default mutations
ログイン後にコピー
index.js ファイル:

// action.js
import type from './mutation-type'

let actions = {
 [type.CHANGE_COUNT]({ commit }) {
 
 commit(type.CHANGE_COUNT)
 
 }
}

export default actions
ログイン後にコピー
vuex は補助関数と呼ばれるものを提供しており、その利点によりページでの作業が可能になります。使用する必要があるものを表示したり、使用時に記述するコンテンツを減らすこともできますが、これは必須ではありません。自分のニーズに応じて使用できます。

効果が発揮される場所が異なるので注意が必要です。

...mapGetters はこのページの計算されたプロパティに記述されており、計算されたプロパティを使用するのと同じようにゲッター内のコンテンツを使用できます。

...mapActions はこのページのメソッドに記述されており、他のメソッドで呼び出すことも、次のように @click に直接記述することもできます:

// tab1.vue
<template>
 <p>
 <p>这是tab1的内容</p>
 <em @click="add">{{count}}</em>
 <p>getter:{{NewArr}}</p>
 </p>
</template>


<script>
import { mapActions, mapGetters } from "vuex";
import type from "../store/mutation-type";
export default {
 computed: {
 ...mapGetters([
 'NewArr'
 ]),
 count: function() {
 return this.$store.state.count;
 },
 },
 methods: {
 ...mapActions({
 CHANGE_COUNT: type.CHANGE_COUNT
 }),
 add: function() {
 this.CHANGE_COUNT(type.CHANGE_COUNT);
 }
 }
};
</script>

<style lang="" scoped>

</style>
ログイン後にコピー
Jiang Zi、tab1 の数字は毎回 1 ずつ増加します。をクリックします。

mudule


vuex のドキュメントはモジュールについて曖昧なので、やはり自分で使用する必要があります。

この例では、同じ名前の 2 つのコンポーネントに対応する 2 つのモジュールを設定しました。もちろん、tab2 を見てください。

import Vuex from 'vuex'
import Vue from 'vue'
import actions from './action'
import mutations from './mutation'
import getters from './getter'
import tab2 from './module/tab2'
import tab3 from './module/tab3'

Vue.use(Vuex)

let state = {
 count: 1,
 arr:[]
}


let store = new Vuex.Store({
 state,
 getters,
 mutations,
 actions,
 modules:{
 tab2,tab3
 }
 
})

export default store
ログイン後にコピー
<em @click="CHANGE_COUNT">{{count}}</em>
ログイン後にコピー
この例では、主にページ上のモジュールに記載されている呼び出し方法を確認します。

まず状態について話しましょう。これは非常に簡単です。このページに次のように記述するだけです。このページに stete がネストされたレイヤーを追加していることがわかります。

アクション、ミューテーション、ゲッターに関しては、一般的な使い方と同じで、違いはありません。

また、ゲッターとアクションでは、rootState を通じてルート構造の状態を取得できます。ミューテーションにはそのようなメソッドはありません。

関連する推奨事項:


Vuex改善学習の共有

Vuexのファミリーバケットのステータス管理について

vuexを実装するための初期化方法

以上が簡単な vuex とモジュール化を学ぶの詳細内容です。詳細については、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ハードドライブのシリアル番号を照会する最も簡単な方法 ハードドライブのシリアル番号を照会する最も簡単な方法 Feb 26, 2024 pm 02:24 PM

ハードディスクのシリアル番号はハードディスクの重要な識別子であり、通常、ハードディスクを一意に識別し、ハードウェアを識別するために使用されます。場合によっては、オペレーティング システムのインストール時、正しいデバイス ドライバーの検索時、ハード ドライブの修復の実行時など、ハード ドライブのシリアル番号を照会する必要があることがあります。この記事では、ハードドライブのシリアル番号を確認する簡単な方法をいくつか紹介します。方法 1: Windows コマンド プロンプトを使用してコマンド プロンプトを開きます。 Windows システムでは、Win+R キーを押し、「cmd」と入力し、Enter キーを押してコマンドを開きます。

Java コードの保守性を最適化する方法: 経験とアドバイス Java コードの保守性を最適化する方法: 経験とアドバイス Nov 22, 2023 pm 05:18 PM

Java コードの保守性を最適化する方法: 経験とアドバイス ソフトウェア開発プロセスでは、保守性の高いコードを作成することが重要です。保守性とは、予期せぬ問題や追加の労力を引き起こすことなく、コードを簡単に理解、変更、拡張できることを意味します。 Java 開発者にとって、コードの保守性を最適化する方法は重要な問題です。この記事では、Java 開発者がコードの保守性を向上させるのに役立ついくつかの経験と提案を共有します。標準化された命名規則に従うと、コードが読みやすくなります。

Java を使用して簡単な生徒の成績レポート ジェネレーターを作成するにはどうすればよいですか? Java を使用して簡単な生徒の成績レポート ジェネレーターを作成するにはどうすればよいですか? Nov 03, 2023 pm 02:57 PM

Java を使用して簡単な生徒の成績レポート ジェネレーターを作成するにはどうすればよいですか? Student Performance Report Generator は、教師または教育者が生徒の成績レポートを迅速に作成するのに役立つツールです。この記事では、Java を使用して簡単な生徒の成績レポート ジェネレーターを作成する方法を紹介します。まず、学生オブジェクトと学生成績オブジェクトを定義する必要があります。学生オブジェクトには学生の名前や学生番号などの基本情報が含まれ、学生スコア オブジェクトには学生の科目のスコアや平均成績などの情報が含まれます。以下は、単純な Student オブジェクトの定義です。

PHP を使用して簡単なオンライン予約システムを作成する方法 PHP を使用して簡単なオンライン予約システムを作成する方法 Sep 26, 2023 pm 09:55 PM

PHP による簡単なオンライン予約システムの作成方法 インターネットの普及とユーザーの利便性の追求により、オンライン予約システムはますます普及しています。レストラン、病院、美容室、その他のサービス業であっても、シンプルなオンライン予約システムにより効率が向上し、ユーザーにより良いサービス体験を提供できます。この記事では、PHP を使用して簡単なオンライン予約システムを作成する方法と、具体的なコード例を紹介します。データベースとテーブルの作成 まず、予約情報を保存するデータベースを作成する必要があります。 MySで

Python コードの保守性が悪いエラーを解決するにはどうすればよいですか? Python コードの保守性が悪いエラーを解決するにはどうすればよいですか? Jun 25, 2023 am 11:58 AM

Python は高級プログラミング言語として、ソフトウェア開発で広く使用されています。 Python には多くの利点がありますが、多くの Python プログラマーがよく直面する問題は、コードの保守性が低いことです。 Python コードの保守性には、コードの読みやすさ、拡張性、再利用性が含まれます。この記事では、Python コードの保守性が低いという問題を解決する方法に焦点を当てます。 1. コードの可読性 コードの可読性とは、コードの可読性を指し、コードの保守性の核心となります。

クイック スタート: Go 言語関数を使用してシンプルなライブラリ管理システムを実装する クイック スタート: Go 言語関数を使用してシンプルなライブラリ管理システムを実装する Jul 30, 2023 am 09:18 AM

クイック スタート: Go 言語関数を使用したシンプルなライブラリ管理システムの実装 はじめに: コンピューター サイエンスの分野の継続的な発展に伴い、ソフトウェア アプリケーションのニーズはますます多様化しています。図書館管理システムは、共通の管理ツールとして、多くの図書館、学校、企業にとって必要なシステムの 1 つとなっています。この記事では、Go 言語の関数を使用して、簡単なライブラリ管理システムを実装します。この例を通じて、読者は Go 言語の関数の基本的な使い方と実践的なプログラムの構築方法を学ぶことができます。 1. デザインアイデア: まずはやってみましょう

C++ で簡単な音楽レコメンデーション システムを作成するにはどうすればよいですか? C++ で簡単な音楽レコメンデーション システムを作成するにはどうすればよいですか? Nov 03, 2023 pm 06:45 PM

C++ で簡単な音楽レコメンデーション システムを作成するにはどうすればよいですか?はじめに: 音楽推薦システムは、現代の情報技術における研究のホットスポットであり、ユーザーの音楽の好みや行動習慣に基づいて曲を推薦できます。この記事では、C++ を使用して簡単な音楽レコメンデーション システムを作成する方法を紹介します。 1. ユーザーデータを収集する まず、ユーザーの音楽嗜好データを収集する必要があります。さまざまな種類の音楽に対するユーザーの好みは、オンライン調査やアンケートなどを通じて取得できます。データをテキスト ファイルまたはデータベースに保存する

MySQL テーブル設計ガイド: 簡単な従業員勤怠シートの作成 MySQL テーブル設計ガイド: 簡単な従業員勤怠シートの作成 Jul 01, 2023 pm 01:54 PM

MySQL テーブル設計ガイド: 単純な従業員勤怠テーブルの作成 企業管理において、従業員の勤怠管理は重要なタスクです。従業員の出席を正確に記録およびカウントするために、MySQL データベースを使用して簡単な従業員出席シートを作成できます。この記事では、このテーブルを設計および作成する方法を説明し、対応するコード例を示します。まず、従業員の勤怠シートに必要なフィールドを特定する必要があります。一般的に、従業員の勤怠シートには少なくとも次のフィールドが含まれている必要があります: 従業員 ID、日付、勤務時間、非勤務時間

See all articles