您好,登錄后才能下訂單哦!
今天小編給大家分享一下Vuex Module狀態倉庫分割如何使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
vuex主要包含以下五個部分:
State // 存儲變量、數據
Getter // 類似計算屬性
Mutation // 唯一修改state的方法
Action // 異步調用Mutation
Module // 將store模塊化
在此示例中,我創建了兩個store文件,分別是 profile.js
和custom.js
,一個根文件index.js
custom.js
const customs = { namespaced: true, // 創建命名空間 state: { // 存儲變量 showAlert: false }, mutations: { // 定義修改state方法 CHANGESHOW: (state, params) => { state.showAlert = !state.showAlert } }, actions: { // 異步調用mutations setShow: ({ commit }) => { commit('CHANGESHOW') } }, getters: { // 將數據過濾輸出 bodyShow: state => state.showAlert }}export default customs
profile.js
const profile = { namespaced: true, state: { name: 'common name', age: 18, bool: false }, mutations: { CHANGEMSG: (state, params) => { state.name = params }, CHANGEAGE: (state, params) => { state.name = params }, CHANGEBOOL: (state) => { state.bool = !state.bool } }, actions: { setName: ({ commit }) => { commit('CHANGEMSG', 'Vuex common name') }, setAge: ({ commit }) => { commit('CHANGEAGE', 81) }, setBool: ({ commit }) => { commit('CHANGEBOOL') } }, getters: { vuexName: state => state.name, vuexAge: state => state.age, vuexBool: state => state.bool }}export default common
index.js
import Vue from 'vue' import Vuex from 'vuex' // 引入子store import profile from './modules/profile' import customs from './modules/customs' // Vue.use(Vuex) const store = new Vuex.Store({ modules: { profile, customs } }) export default store // 導出store,以便于后續使用
在需要使用的.vue文件里進行使用。方法如下
index.vue
<template> <div> name: <h6>{{vuexName}}</h6> <button @click='setName'>chenge name</button> age: <h6>{{vuexAge}}</h6> <button @click='setAge'>chenge age</button> bool: <h6>{{vuexBool}}</h6> <button @click='setBool'>chenge bool</button> <br/> <span @click='setShow' style='display:inline-block;width:200px;height:30px;border:1px solid #999;border-radius:5px;text-align:center;line-height:30px;cursor: pointer;'>click me ,change showAlert</span> <em>{{bodyShow}}</em> </div> </template> <script> import { mapActions, mapGetters } from 'vuex' export default { computed: { ...mapGetters('profile', ['vuexName', 'vuexAge', 'vuexBool']), ...mapGetters('customs', ['bodyShow']) }, methods: { ...mapActions('customs', ['setShow']), ...mapActions('profile', ['setName', 'setAge', 'setBool']), } </script> <style> </style>
app.js
import Vue from 'vue'; import VueRouter from 'vue-router'; // style import './../../sass/app.scss'; // Components import Main from './Main.vue'; import routes from './routes'; // store import store from './store'; // 將store掛載到Vue Vue.use(VueRouter); const router = new VueRouter({ routes, saveScrollPosition: true, }); new Vue({ router, store, ...Main }).$mount('#app');
初始效果圖 ??
點擊按鈕之后效果圖 ??
以上就是“Vuex Module狀態倉庫分割如何使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。