ホームページ > ウェブフロントエンド > Vue.js > vuex がコーディングと名前空間をどのようにモジュール化するかについて話しましょう

vuex がコーディングと名前空間をどのようにモジュール化するかについて話しましょう

青灯夜游
リリース: 2023-02-08 19:47:32
転載
2574 人が閲覧しました

vuex はコーディングと名前空間をどのようにモジュール化しますか?この記事を簡単に見てみましょう。皆さんのお役に立てれば幸いです。

vuex がコーディングと名前空間をどのようにモジュール化するかについて話しましょう

モジュラーコーディング + 名前空間

ちょっとした質問: 「なぜこれを有効にしたいのですか?」 Shan Yu: 「もちろん、コードの保守を容易にし、さまざまなデータの分類をより明確にするためです。」

小a: "では、どうすればモジュール式コーディングを実現できるのでしょうか。 + namespace"

Shanyu: 「必要なのはこれだけです」

namespaced: true
ログイン後にコピー

Count コンポーネントと Person コンポーネントにあるものをすべてストアに入れます

vuex がコーディングと名前空間をどのようにモジュール化するかについて話しましょう

// Count的相关配置
export default {
    namespaced: true,
    actions: {
        // 奇数加法
        jiaodd(context, value) {
            if (context.state.sum % 2) {
                context.commit('JIA', value)
            }
        },
        // 延迟加
        jiaWait(context, value) {
            setTimeout(() => {
                context.commit("JIA", value)
            }, 500);
        },
    },
    mutations: {
        JIA(state, value) {
            state.sum += value
        },
        JIAN(state, value) {
            state.sum -= value
        },
    },
    state: {
        sum: 0, // 当前和
        school: '山鱼小学',
        subject: '前端',
    },
    getters: {
        bigSum(state) {
            return state.sum * 10
        }
    }
}
ログイン後にコピー

2. 名前空間を開いた後、状態データを読み取ります。

  computed: {
     // 自己读取
    personList() {
      returnthis.$store.state.personAbout.personList;
    },
    sum() {
      returnthis.$store.state.countAbout.sum;
    },
  },
  // 借助mapState读取
computed: {
    ...mapState("countAbout", ["sum", "subject", "school"]), 
    ...mapState("personAbout", ["personList"]) 
  },
ログイン後にコピー

3. 名前空間を開いた後、コンポーネント

  computed: {
      // 自己读取
    firstName() {
      returnthis.$store.getters["personAbout/firstPersonName"];
    }
  },
  methods: {
    // 借助mapGetters读取
    // 借助mapMutations生成对应的方法,方法种会调用相应的commit去联系mutations
    ...mapMutations('countAbout',{ increment: "JIA", decrement: "JIAN" }), // 对象式

    ...mapActions('countAbout',{ incrementOdd: "jiaodd", incrementWait: "jiaWait" }) //对象式

  },
ログイン後にコピー

4. 名前空間を開いた後、dispatch

methods: {
     // 直接dispath
    addWang() {
      constpersonObj= { id: nanoid(), name: this.name };
      this.$store.dispatch("personAbout/addNameWang", personObj);
      this.name="";
    },
  },
//借助mapGetters读取:
  computed: {
    ...mapGetters('countAbout',['bigSum'])
  },
ログイン後にコピー

5. 名前空間を開いた後、コンポーネント内の commit## を呼び出します#

methods: {
    // 直接调用
    add() {
      constpersonObj= { id: nanoid(), name: this.name };
      this.$store.commit("personAbout/ADD_PERSON", personObj);
      this.name="";
    },
 }
  methods: {
    // 借助mapMutations生成对应的方法,方法种会调用相应的commit去联系mutations
    ...mapMutations('countAbout',{ increment: "JIA", decrement: "JIAN" }), // 对象式
      },
  }
ログイン後にコピー
モジュール化は非常に香り高く、コードとデータはより明確になり、その後のメンテナンスも非常に簡単としか言えません。
(学習ビデオ共有:

vuejs 入門チュートリアル ,基本的なプログラミング ビデオ )

以上がvuex がコーディングと名前空間をどのようにモジュール化するかについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート