Vuex: рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрд░рдЪрд┐рдд рдХрд░рдирд╛ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛

Vuex рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдПрдкреНрд▓реАрдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Vue.js. рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд▓реЗрдЦрдХ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Redux рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, Vuex рдХреЛ рдХрдо рдмреЙрдпрд▓рд░ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрдВрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣рд╛рдВ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪреВрдВрдХрд┐ Vuex рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрд╕реА рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдереА рдЬреЛ Vue рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХреАрдХреГрдд рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Vuex рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЖрдк рдЕрднреА рднреА рдПрдХ рдХрдард┐рдирд╛рдИ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдареАрдХ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред



рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЖрдкрдХреЛ Vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд░реНрдгрди рдорд┐рд▓реЗрдЧрд╛, рдФрд░ Vuex рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯред

Vue- рдЙрджреНрдпрдо-рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдкреИрдЯрд░реНрди рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдореБрджреНрджрд╛


Vue рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ, рдХреНрд░рд┐рд╕ рдлреНрд░рд┐рдЯреНрдЬ рдиреЗ, Vue рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ Vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ Vuex рдХреЛ modules рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдХреБрдЫ рдирд┐рдореНрди рдЖрдХреГрддрд┐ рдЬреИрд╕реА рджрд┐рдЦ рд╕рдХрддреА рд╣реИред


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреЛрдб рдкреНрд▓реЗрд╕рдореЗрдВрдЯ

рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╕реНрдерд┐рддрд┐, рдЧреЗрдЯрд░реНрд╕, рдХреНрд░рд┐рдпрд╛рдПрдВ рдФрд░ рдореНрдпреВрдЯреЗрд╢рди рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ Vuex рдореЙрдбреНрдпреВрд▓ рдХрднреА-рдХрднреА рдХрд╛рдлреА рдмрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХреЛрдб рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ред рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рдж, рд╣рдо рдХреЛрдб рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдмрджрд▓ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣реА рд╣реИ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓ рдЬрд╛рдПрдЧреА рдФрд░ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧреАред


рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЯреВрдЯрдиреЗ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛

рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЬреЛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ


рдЗрд╕рд▓рд┐рдП, рд╣рдо Vuex рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╕рдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ Vue CLI 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред

рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ npm install vuex lodash -save рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ Vuex рдФрд░ Lodash npm install vuex lodash -save ред рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд▓реЛрджрд╢ рд╕реЗ camelCase рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдКрдВрдЯ рд╢реИрд▓реА рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдм рдкрд┐рдЫрд▓реЗ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЗ рд╕рдорд╛рди рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдВред

рдЪрд▓рд┐рдП store.js рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЙрд╕рдХрд╛ рдХреЛрдб рд╣реИ:

 import Vue from 'vue' import Vuex from 'vuex' import modules from './modules' Vue.use(Vuex) const store = new Vuex.Store({ modules, strict: process.env.NODE_ENV !== 'production' }) //    `init`     for (const moduleName of Object.keys(modules)) { if (modules[moduleName].actions.init) {   store.dispatch(`${moduleName}/init`) } } export default store 

Vue рдФрд░ Vuex рдпрд╣рд╛рдБ рдЖрдпрд╛рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЙрдирдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо /modules/index.js рд╕реЗ /modules/index.js рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рд╣рдо рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднрдВрдбрд╛рд░рдг рдФрд░ рд▓реВрдк рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ init рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЙрди рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдирддреАрдЬрддрди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо store рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ store , рдЬрд┐рд╕рдХреЗ рдмрд╛рдж, рдЖрдорддреМрд░ рдкрд░, рдЗрд╕реЗ main.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ Vue рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рдпрд╣ index.js рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЬреЛ рдХрд┐ /store/modules рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред

 //    Vuex     ,    . import camelCase from 'lodash/camelCase'; //    const requireModule = require.context( //      '.', //     true, //   index.js,    ,    //   'actions', 'mutations',  'getters' . //  ,      .js /^(?!.*(actions|mutations|getters|index)).*\.js$/ ); const modules = {}; requireModule.keys().forEach(fileName => { //     if (/\.unit\.js$/.test(fileName)) return; //            modules[camelCase(fileName.split('/')[1].replace(/(\.\/|\.js)/g, ''))] = {   namespaced: true,   ...requireModule(fileName).default }; }); export default modules; 

рдЗрд╕ рдХреЛрдб рдореЗрдВ, рд╣рдо рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд▓реЛрдбрд╢ рд╕реЗ camelCase рдлрд╝рдВрдХреНрд╢рди рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╣рдо рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП require.context рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ index.js рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдЧрд╛, рд╕рд╛рде рд╣реА рдРрд╕реА рдлрд╛рдЗрд▓реЗрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рдореЗрдВ рд▓рд╛рдЗрдиреНрд╕ actions , mutations рдФрд░ getters ред рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд┐рддрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, auth.js , рдФрд░ рдлрд┐рд░ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ src/store/modules/auth/ auth.js src/store/modules/auth/ рдлреЛрд▓реНрдбрд░ рд╕реЗ auth.js рдлрд╝рд╛рдЗрд▓ рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:

 import actions from './actions'; import mutations from './mutations'; import getters from './getters'; const state = {   user: null }; export default {   state,   mutations,   getters,   actions }; 

рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдФрд░ рдЙрди рд╕рднреА рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдирд╛рдо рдкрд░ рдПрдХ рд▓рд╛рдЗрди unit , рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо modules рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирдИ рдкреНрд░реЙрдкрд░реНрдЯреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯреЗрдЯ рдлрд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, auth рдпрд╛ users ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХреЛ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП camelCase рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╣рдо modules рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ requireModule рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ...requireModule(fileName).default , рдФрд░ рдлрд┐рд░ modules рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред

рддрдереНрдп рдХреА рдмрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрд░рдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░рд╛рдЬреНрдп, рдЧреЗрдЯрд░реНрд╕, рдПрдХреНрд╢рди рдФрд░ рдореНрдпреВрдЯреЗрд╢рди рдЕрд▓рдЧ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ Vuex рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВред

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Vuex рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ


рдирд╛рдо рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ, рдЗрд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ generateVuexModule.js рдмрдирд╛рдПрдВред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ Node.js рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдм рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ - chalk рдкреИрдХреЗрдЬ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЛ npm install -save-dev chalk рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

1рд╕реНрдЯреЗрдк рез


generateVuexModule.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рддреАрди рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: fs , path рдФрд░ chalk ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ ( src/store/modules ) рдХреЗ рдкрде рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рдФрд░ рдПрдХ рдЕрдиреНрдп рдирд┐рд░рдВрддрд░ - args , рдЬреЛ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рддрд░реНрдХ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

 const fs = require('fs'); const path = require('path'); const chalk = require('chalk'); const modulesPath = 'src/store/modules'; const args = process.argv.slice(2); const error = (...args) => { console.log(chalk.red(...args)); }; const success = (...args) => { console.log(chalk.green(...args)); }; if (!args.length) { error('You must provide a name for the module!'); return; } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдкрд╣рд▓реЗ рджреЛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рддрд░рд╣ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ node.exe рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рдирдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдоред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди, error рдФрд░ success , рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд░рдВрдЧреЛрдВ рдХреЗ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡реЛрдХреНрдд chalk рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдорд╛рд░реА рдирд╛рдо рд▓рд┐рдкрд┐ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ args рдРрд░реЗ рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк node generateVuexModule.js рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рдФрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, рдЖрдкрдХреЛ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

2рд╕реНрдЯреЗрдк реи


рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдкрде рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рд╣реИ рд╕реНрдерд┐рд░рд╛рдВрдХред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдЕрднреА рднреА рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, args рд╕рд░рдгреА рд╕реЗ рдирд╛рдо рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдкрде рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ, рди рдХрд┐ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЧрдарди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

 const moduleName = args[0]; const modulePath = path.join(__dirname, '../', modulesPath, moduleName); if (fs.existsSync(modulePath)) { error(`${moduleName} directory already exists!`); return; } const stateContent = `import getters from './getters'; import actions from './actions'; import mutations from './mutations'; const state = {}; export default { state, getters, actions, mutations }; `; const exportFileContent = `import * as types from '@/store/types'; export default { }; `; 

рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рд╕реВрдЪрдХрд╛рдВрдХ 0. рдХреЗ рд╕рд╛рде args рд╕рд░рдгреА рдХреЗ рддрддреНрд╡ рдореЗрдВ рд╣реЛрдЧрд╛ред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рд╣рдо рдЗрд╕ рддрддреНрд╡ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ process.argv рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ args рд╕рд░рдгреА рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЬрд╛рдВрдЪ рдХреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ path рдореЙрдбреНрдпреВрд▓ рдФрд░ join рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реНрдг рдкрде рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ __dirname рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ __dirname , рдПрдХ рд╕реНрддрд░ рдКрдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ generateVuexModule.js рдлрд╝рд╛рдЗрд▓ scripts рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдлрд┐рд░ рд╣рдо рдХреЗрд╡рд▓ рдкрд░рд┐рдгрд╛рдо, рдирд┐рд░рдВрддрд░ modulesPath рдХреА рд╕рд╛рдордЧреНрд░реА рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд╛рдо рдХреЛ modulesPath ред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, modulePath рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ pathToYourProject/project/src/store/modules/moduleName рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдм, рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░рд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рд╣рдо рдЬрд╛рдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореМрдЬреВрдж рд╣реИред рд╣рдо рдЧрд▓рддреА рд╕реЗ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдореЙрдбреНрдпреВрд▓ рдХреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрджрд┐ рдЖрдк рдЬрд┐рд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдореМрдЬреВрдж рд╣реИ, рд╣рдо chalk рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓рд╛рд▓ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред


рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЙрджрд╛рд╣рд░рдг

рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдирд┐рд░рдВрддрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╣реЛрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, stateContent рдЙрдкрдпреЛрдЧ рд╕реНрдЯреЗрдЯ рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ auth.js , рдФрд░ exportFileContent рдХреЛ getters.js , actions.js рдФрд░ mutations.js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

3рд╕реНрдЯреЗрдк рей


рдЕрдм рд╣рдореЗрдВ рдмрд╕ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред

 const statePath = `${path.join(modulePath, `${moduleName}.js`)}` const gettersPath = `${path.join(modulePath, 'getters.js')}` const actionsPath = `${path.join(modulePath, 'actions.js')}` const mutationsPath = `${path.join(modulePath, 'mutations.js')}` fs.mkdirSync(modulePath); fs.appendFileSync(statePath, stateContent); fs.appendFileSync(gettersPath, exportFileContent); fs.appendFileSync(actionsPath, exportFileContent); fs.appendFileSync(mutationsPath, exportFileContent); success('Module', moduleName, 'generated!'); 

рдкрд╣рд▓реЗ рд╣рдо рдЪрд╛рд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрде рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдБрдЪ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рдХреЛрдИ рдлрд╝реЛрд▓реНрдбрд░ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рджреАред рдЗрд╕рд▓рд┐рдП, рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо fs.appendFileSync рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирдИ рдмрдирд╛рдИ рдЧрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд░рдЦрддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИред

рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ scripts рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдПрдВ рдФрд░ рдкреНрд░рдкрддреНрд░ node generateVuexModule.js yourModuleName рдХреА рдПрдХ рдХрдорд╛рдВрдб node generateVuexModule.js yourModuleName ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдкрд░рд┐рдгрд╛рдо


рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдиреЗ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрд░рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛, рдЬрд╣рд╛рдБ рдЖрдк Vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ Vuex рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдЬреНрдЮрд╛рди рдЙрдкрдпреЛрдЧреА рд▓рдЧреЗрдЧрд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб, рдЬрд┐рд╕рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╣рдордиреЗ рдЬрд╛рдВрдЪ рдХреА, рд╡рд╣ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдмрдбрд╝реЗ Vue рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ Vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

Source: https://habr.com/ru/post/hi420357/


All Articles