欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解在Vue中如何模塊化使用Vuex

 更新時(shí)間:2024年01月24日 11:56:41   作者:JacksonChen_  
這篇文章給大家介紹了在Vue 中如何模塊化使用 Vuex,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

正常使用

// src/store/index.js
 
import Vue from 'vue';
import Vuex from 'vuex';
 
Vue.use(Vuex);
 
export default new Vuex.Store({
  state: {
    count: 0, // 一個(gè)簡(jiǎn)單的狀態(tài)示例
  },
  mutations: {
    increment(state) {
      state.count++;
    },
    decrement(state) {
      state.count--;
    },
  },
  actions: {
    increment(context) {
      context.commit('increment');
    },
    decrement(context) {
      context.commit('decrement');
    },
  },
  getters: {
    getCount: state => state.count,
  },
});

在組件中使用 Vuex: 在需要訪問(wèn)或修改狀態(tài)的組件中,你可以使用Vuex提供的輔助函數(shù)。

// src/components/Counter.vue
 
<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="increment">Increment</button>
    <button @click="decrement">Decrement</button>
  </div>
</template>
 
<script>
import { mapState, mapActions } from 'vuex';
 
export default {
  computed: {
    ...mapState(['count']),
  },
  methods: {
    ...mapActions(['increment', 'decrement']),
  },
};
</script>

模塊化使用 

優(yōu)點(diǎn)

在個(gè)人小項(xiàng)目當(dāng)中,不使用模塊化沒(méi)什么問(wèn)題,但是在公司或者大型項(xiàng)目下就需要使用模塊化管理,使用模塊化有利于可維護(hù)性、團(tuán)隊(duì)協(xié)作、代碼結(jié)構(gòu)清晰、提高可讀性等優(yōu)點(diǎn)。

假設(shè)你有兩個(gè)模塊,一個(gè)用于管理用戶信息,另一個(gè)用于管理商品信息。

首先,分別創(chuàng)建兩個(gè) Vuex 模塊文件:

模塊文件

userModule.js

// userModule.js
const state = {
  user: null,
  userName:"張三"
};
 
const mutations = {
  SET_USER(state, user) {
    state.user = user;
  },
};
 
const actions = {
  setUser({ commit }, user) {
    commit("SET_USER", user);
  },
};
 
export default {
  namespaced: true,
  state,
  mutations,
  actions,
};

productModule.js

// productModule.js
const state = {
  products: [],
  productName:'電腦'
};
 
const mutations = {
  ADD_PRODUCT(state, product) {
    state.products.push(product);
  },
};
 
const actions = {
  addProduct({ commit }, product) {
    commit("ADD_PRODUCT", product);
  },
};
 
export default {
  namespaced: true,
  state,
  mutations,
  actions,
};

集中模塊的狀態(tài)到 Getters,方便頁(yè)面中使用

在根級(jí) Vuex Store 中創(chuàng)建 Getters,用于集中所有模塊的狀態(tài)數(shù)據(jù):

getters.js

// getters.js
export default {
  userName: state => state.user.userName,
  productName: state => state.product.productName,
};

創(chuàng)建根級(jí)的 Vuex Store 文件,將上述的模塊引入并注冊(cè):

store.js

import Vue from 'vue';
import Vuex from 'vuex';
import userModule from './userModule';
import productModule from './productModule';
import getters from './getters'; // 導(dǎo)入 getters 為對(duì)象
 
Vue.use(Vuex);
 
const store = new Vuex.Store({
  modules: {
    user: userModule,
    product: productModule,
  },
  getters,
});
 
export default store;

頁(yè)面使用

<template>
  <div>
    <h1>User Name: {{ userName }}</h1>
  </div>
</template>
 
<script>
export default {
  computed: {
    userName() {
      return this.$store.getters.userName;
    }
  },
  mounted() {
    this.$store.dispatch("user/setUser", { userName: "John Doe" });
    this.$store.dispatch("product/addProduct", { name: "Product A" });
  },
};
</script>

到此這篇關(guān)于詳解在Vue中如何模塊化使用Vuex的文章就介紹到這了,更多相關(guān)Vue模塊化使用Vuex內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue?Router(v3.x)?路由傳參的三種方式場(chǎng)景分析

    vue?Router(v3.x)?路由傳參的三種方式場(chǎng)景分析

    vue?路由傳參的使用場(chǎng)景一般都是應(yīng)用在父路由跳轉(zhuǎn)到子路由時(shí),攜帶參數(shù)跳轉(zhuǎn),傳參方式可劃分為?params?傳參和?query?傳參,而?params?傳參又可分為在?url?中顯示參數(shù)和不顯示參數(shù)兩種方式,這就是vue路由傳參的三種方式,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • vue調(diào)用本地?cái)z像頭實(shí)現(xiàn)拍照功能

    vue調(diào)用本地?cái)z像頭實(shí)現(xiàn)拍照功能

    這篇文章主要介紹了vue調(diào)用本地?cái)z像頭實(shí)現(xiàn)拍照功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Vue實(shí)現(xiàn)微信小程序中預(yù)覽文件的縮放功能

    Vue實(shí)現(xiàn)微信小程序中預(yù)覽文件的縮放功能

    在微信小程序中,默認(rèn)情況下,文件預(yù)覽功能不支持文檔縮放,導(dǎo)致用戶在遇到小字體時(shí)難以清晰閱讀,為了解決這一問(wèn)題并提升用戶體驗(yàn),實(shí)現(xiàn)文檔的縮放功能至關(guān)重要,所以本文
    2024-12-12
  • Vue取消Axios發(fā)出的請(qǐng)求

    Vue取消Axios發(fā)出的請(qǐng)求

    axios 是一個(gè)基于 promise 的 HTTP 庫(kù),可以用在瀏覽器和 node.js 中。首先需要知道:axios不是一種新的技術(shù)。axios 是一個(gè)基于Promise 用于瀏覽器和 nodejs 的 HTTP 客戶端,本質(zhì)上也是對(duì)原生XHR的封裝,只不過(guò)它是Promise的實(shí)現(xiàn)版本,符合最新的ES規(guī)范
    2022-09-09
  • Vue路由參數(shù)的傳遞與獲取方式詳細(xì)介紹

    Vue路由參數(shù)的傳遞與獲取方式詳細(xì)介紹

    顧名思義,vue路由傳參是指嵌套路由時(shí)父路由向子路由傳遞參數(shù),否則操作無(wú)效。傳參方式可以劃分為params傳參和query傳參,params傳參又可以分為url中顯示參數(shù)和不顯示參數(shù)兩種方式。具體區(qū)分和使用后續(xù)分析
    2022-09-09
  • 詳解vue通過(guò)NGINX部署在子目錄或者二級(jí)目錄實(shí)踐

    詳解vue通過(guò)NGINX部署在子目錄或者二級(jí)目錄實(shí)踐

    這篇文章主要介紹了詳解vue通過(guò)NGINX部署在子目錄或者二級(jí)目錄實(shí)踐,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 解決vue-pdf查看pdf文件及打印亂碼的問(wèn)題

    解決vue-pdf查看pdf文件及打印亂碼的問(wèn)題

    這篇文章主要介紹了解決vue-pdf查看pdf文件及打印亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Vue3獲取DOM節(jié)點(diǎn)的3種方式實(shí)例

    Vue3獲取DOM節(jié)點(diǎn)的3種方式實(shí)例

    Vue本來(lái)無(wú)需操作DOM來(lái)更新界面,而且Vue也不推薦我們直接操作DOM,但是我們非要拿到DOM操作DOM怎么辦,下面這篇文章主要給大家介紹了關(guān)于Vue3獲取DOM節(jié)點(diǎn)的3種方式,需要的朋友可以參考下
    2023-02-02
  • 淺談vite和webpack的性能優(yōu)化和區(qū)別

    淺談vite和webpack的性能優(yōu)化和區(qū)別

    本文主要介紹了淺談vite和webpack的區(qū)別,從性能優(yōu)化的幾個(gè)方便講解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 解決@vue/cli安裝成功后,運(yùn)行vue -V報(bào):不是內(nèi)部或外部命令的問(wèn)題

    解決@vue/cli安裝成功后,運(yùn)行vue -V報(bào):不是內(nèi)部或外部命令的問(wèn)題

    這篇文章主要介紹了解決@vue/cli安裝成功后,運(yùn)行vue -V報(bào):不是內(nèi)部或外部命令的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論