最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vuex命名空間的使用

 更新時(shí)間:2021年09月29日 09:21:17   作者:HappyCodingTop  
本文主要介紹了vuex命名空間的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Vuex由于使用單一狀態(tài)樹,應(yīng)用的所有狀態(tài)會(huì)集中到一個(gè)比較大的對(duì)象。當(dāng)應(yīng)用變得非常復(fù)雜時(shí),store 對(duì)象就有可能變得相當(dāng)臃腫。

因此,Vuex 允許我們將 store 分割成模塊(module),每個(gè)模塊擁有自己的 state、mutation、action、getter、甚至是嵌套子模塊。

默認(rèn)情況下,模塊內(nèi)部的 action、mutation 和 getter 是注冊(cè)在全局命名空間的,這樣使得多個(gè)模塊能夠?qū)ν?mutation 或 action 作出響應(yīng)。如果希望你的模塊具有更高的封裝度和復(fù)用性,此時(shí)就用到了命名空間這個(gè)概念。

{
    "模塊1":{
        state:{},
        getters:{},
        mutations:{},
        actions:{}
    },
    "模塊2":{
        state:{},
        getters:{},
        mutations:{},
        actions:{}
    }
}

mapState、mapGetters、mapMutations、mapActions第一個(gè)參數(shù)是字符串(命名空間名稱),第二個(gè)參數(shù)是數(shù)組(不需要重命名)/對(duì)象(需要重命名)。

mapXXXs('命名空間名稱',['屬性名1','屬性名2'])

mapXXXs('命名空間名稱',{

  '組件中的新名稱1':'Vuex中的原名稱1',

  '組件中的新名稱2':'Vuex中的原名稱2',

})

項(xiàng)目結(jié)構(gòu)

mian.js

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store/index";

Vue.config.productionTip = false;

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");

index.js

import Vue from "vue";
import Vuex from "vuex";
import cat from "./modules/cat";
import dog from "./modules/dog";

Vue.use(Vuex);

export default new Vuex.Store({
  modules: { cat, dog }
});

cat.js

export default {
  namespaced: true,
  // 局部狀態(tài)
  state: {
    name: "藍(lán)白英短",
    age: 1
  },
  // 局部讀取
  getters: {
    desc: state => "寵物:" + state.name
  },
  // 局部變化
  mutations: {
    increment(state, payload) {
      state.age += payload.num;
    }
  },
  // 局部動(dòng)作
  actions: {
    grow(context, payload) {
      setTimeout(() => {
        context.commit("increment", payload);
      }, 1000);
    }
  }
};

dog.js

export default {
  namespaced: true,
  // 局部狀態(tài)
  state: {
    name: "拉布拉多",
    age: 1
  },
  // 局部讀取
  getters: {
    desc: state => "寵物:" + state.name
  },
  // 局部變化
  mutations: {
    increment(state, payload) {
      state.age += payload.num;
    }
  },
  // 局部動(dòng)作
  actions: {
    grow(context, payload) {
      setTimeout(() => {
        context.commit("increment", payload);
      }, 1000);
    }
  }
};

hello.vue

<template>
  <div class="hello">
    <h3>Vuex狀態(tài)樹</h3>
    <div>{{this.$store.state}}</div>
    <h3>mapState</h3>
    <div>{{catName}} {{catAge}}</div>
    <div>{{dogName}} {{dogAge}}</div>
    <h3>mapGetters</h3>
    <div>{{catDesc}}</div>
    <div>{{dogDesc}}</div>
    <h3>mapMutations</h3>
    <button @click="catIncrement({num:1})">貓變化</button>
    <button @click="dogIncrement({num:1})">狗變化</button>
    <h3>mapActions</h3>
    <button @click="catGrow({num:1})">貓動(dòng)作</button>
    <button @click="dogGrow({num:1})">狗動(dòng)作</button>
  </div>
</template>

<script>
import { mapState, mapGetters, mapMutations, mapActions } from "vuex";

export default {
  name: "HelloWorld",
  computed: {
    ...mapState("cat", {
      catName: "name",
      catAge: "age"
    }),
    ...mapState("dog", {
      dogName: "name",
      dogAge: "age"
    }),
    ...mapGetters("cat", {
      catDesc: "desc"
    }),
    ...mapGetters("dog", {
      dogDesc: "desc"
    })
  },
  methods: {
    ...mapMutations("cat", { catIncrement: "increment" }),
    ...mapMutations("dog", { dogIncrement: "increment" }),
    ...mapActions("cat", { catGrow: "grow" }),
    ...mapActions("dog", { dogGrow: "grow" })
  }
};
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
</style>

運(yùn)行效果

到此這篇關(guān)于vuex命名空間的使用的文章就介紹到這了,更多相關(guān)vuex命名空間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于.prettierrc代碼格式化配置方式

    關(guān)于.prettierrc代碼格式化配置方式

    這篇文章主要介紹了關(guān)于.prettierrc代碼格式化配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue3采用xlsx庫(kù)實(shí)現(xiàn)本地上傳excel文件功能

    vue3采用xlsx庫(kù)實(shí)現(xiàn)本地上傳excel文件功能

    這篇文章主要為大家詳細(xì)介紹了vue3如何采用xlsx庫(kù)實(shí)現(xiàn)本地上傳excel文件功能,并且前端解析為Json數(shù)據(jù),感興趣的小伙伴可以了解一下
    2025-02-02
  • 如何解決vue在ios微信

    如何解決vue在ios微信"復(fù)制鏈接"功能問(wèn)題

    這篇文章主要介紹了如何解決vue在ios微信"復(fù)制鏈接"功能問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 如何在vue中使用HTML 5 拖放API

    如何在vue中使用HTML 5 拖放API

    這篇文章主要介紹了如何在vue中使用HTML 5 拖放API,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2021-01-01
  • Vue中Axios配置不同的baseURL,請(qǐng)求不同的域名接口方式

    Vue中Axios配置不同的baseURL,請(qǐng)求不同的域名接口方式

    這篇文章主要介紹了Vue中Axios配置不同的baseURL,請(qǐng)求不同的域名接口方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • vue跳轉(zhuǎn)方式的常見方式以及區(qū)別分析

    vue跳轉(zhuǎn)方式的常見方式以及區(qū)別分析

    在Vue.js中頁(yè)面跳轉(zhuǎn)是前端開發(fā)中常見的需求,Vue提供了多種頁(yè)面跳轉(zhuǎn)方式,這篇文章主要給大家介紹了關(guān)于vue跳轉(zhuǎn)方式的常見方式以及區(qū)別分析的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • Vue寫一個(gè)簡(jiǎn)單的倒計(jì)時(shí)按鈕功能

    Vue寫一個(gè)簡(jiǎn)單的倒計(jì)時(shí)按鈕功能

    這篇文章主要介紹了基于Vue寫一個(gè)簡(jiǎn)單的倒計(jì)時(shí)按鈕功能,在項(xiàng)目開發(fā)的過(guò)程,經(jīng)常會(huì)遇到發(fā)送驗(yàn)證碼,點(diǎn)擊之后有60秒倒計(jì)時(shí)的按鈕,今天小編就給大家分享實(shí)例代碼,需要的朋友參考下吧
    2018-04-04
  • Vue實(shí)現(xiàn)一個(gè)帶有緩存功能的Tab頁(yè)簽功能

    Vue實(shí)現(xiàn)一個(gè)帶有緩存功能的Tab頁(yè)簽功能

    在現(xiàn)代?Web?應(yīng)用中,Tab?頁(yè)簽功能是非常常見的一種交互模式,它可以幫助用戶在不同的視圖間快速切換,而不會(huì)丟失當(dāng)前視圖的狀態(tài),本文將介紹如何在?Vue?項(xiàng)目中實(shí)現(xiàn)一個(gè)帶有緩存功能的?Tab?頁(yè)簽功能,需要的朋友可以參考下
    2024-08-08
  • 前端H5微信支付寶支付實(shí)現(xiàn)方法(uniapp為例)

    前端H5微信支付寶支付實(shí)現(xiàn)方法(uniapp為例)

    最近上線一個(gè)項(xiàng)目,手機(jī)網(wǎng)站進(jìn)行調(diào)起支付寶App支付,做起來(lái)還是滿順手的,在此做個(gè)記錄,這篇文章主要給大家介紹了關(guān)于前端H5微信支付寶支付實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • vuejs數(shù)據(jù)超出單行顯示更多,點(diǎn)擊展開剩余數(shù)據(jù)實(shí)例

    vuejs數(shù)據(jù)超出單行顯示更多,點(diǎn)擊展開剩余數(shù)據(jù)實(shí)例

    這篇文章主要介紹了vuejs數(shù)據(jù)超出單行顯示更多,點(diǎn)擊展開剩余數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論

寻乌县| 沧源| 渭源县| 青龙| 错那县| 海城市| 长宁县| 阳高县| 苏州市| 茂名市| 潞西市| 轮台县| 定州市| 山西省| 河曲县| 同江市| 闽清县| 临泉县| 剑阁县| 松潘县| 白玉县| 临澧县| 东平县| 金坛市| 临漳县| 芷江| 香格里拉县| 积石山| 教育| 日喀则市| 油尖旺区| 玉溪市| 蓬莱市| 澎湖县| 红河县| 金塔县| 株洲市| 大同县| 霞浦县| 四川省| 台中市|