Vuex 4 no és molt diferent de les versions anteriors, però és l’única versió compatible amb Vue 3. Vegeu com utilitzar-les juntes.
Vuex és la solució de gestió d'estats preferida per a les aplicacions Vue i Vuex 4 és la versió compatible amb Vue 3. Anem a explorar com utilitzar Vuex 4 amb Vue 3.
Instal·lació
Podem instal·lar Vuex amb Vue 3 de diverses maneres, una de les quals és utilitzar l’etiqueta de script.
Per utilitzar-lo, podem escriure:
App increment {{count}}
const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment(state) { state.count++; } } }); const app = Vue.createApp({ methods: { increment() { this.$store.commit('increment'); } }, computed: { count() { return this.$store.state.count; } } }); app.use(store); app.mount('#app');
A la part superior, afegim els scripts de Vuex 4 i Vue i, a continuació, podem utilitzar l’objecte global Vuex al nostre codi.
Per crear una botiga, anomenem Vuex.Store
constructor amb un objecte amb els estats i mutacions que volem afegir per crear un magatzem bàsic. Els Estats són propietats que emmagatzemen dades a la nostra botiga Vuex; ens permeten accedir a les dades des de qualsevol lloc de la nostra aplicació Vue 3. Les mutacions són funcions que ens permeten modificar estats a la botiga Vuex.
veure l'aplicació de tuits privats
Un cop hem creat la nostra botiga, la passem al Vue.createApp
mètode per afegir la botiga a la nostra aplicació. El app.use(store);
mètode de trucada ens permet utilitzar la botiga a la nostra aplicació Vue 3.
Ara que s'ha afegit la botiga, podem utilitzar el this.$store
propietat per obtenir els estats i manipular la nostra botiga. El this.$store.commit
mètode ens permet confiar les mutacions a la botiga.
Comprometem el increment
mutació a la nostra botiga per actualitzar el count
estat. Per tant, quan fem clic al botó d'increment, el count
L'estat Vuex s'actualitzarà juntament amb el count
propietat calculada.
Getters
Per afegir els estats de la botiga a la nostra aplicació més fàcilment, podem fer servir getters. Els geters són funcions que retornen un estat o estats que s’han operat o combinat amb altres valors.
Per exemple, podem afegir un getter escrivint:
amazo..com/mytv
App increment {{doubleCount}}
const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment(state) { state.count++; } }, getters: { doubleCount: (state) => { return state.count * 2; } } }); const app = Vue.createApp({ methods: { increment() { this.$store.commit('increment'); } }, computed: { ...Vuex.mapGetters(['doubleCount']) } }); app.use(store); app.mount('#app');
Hem afegit el doubleCount
getter, que retorna el count
estat multiplicat per dos. Després, al component, anomenem Vuex.mapGetters
mètode amb el nom del getter per assignar-lo a una propietat calculada. També el tenim a la plantilla perquè puguem veure el seu valor.
Si volem un mètode com a getter, podem retornar una funció al nostre getter. Per exemple, podem escriure:
App {{getTodoById(1).text}}
const store = new Vuex.Store({ state: { todos: [ { id: 1, text: 'drink', done: true }, { id: 2, text: 'sleep', done: false } ] }, getters: { getTodoById: (state) => (id) => { return state.todos.find((todo) => todo.id === id); } } }); const app = Vue.createApp({ computed: { ...Vuex.mapGetters(['getTodoById']) } }); app.use(store); app.mount('#app');
Tenim el todos
Vuex store store, i volem obtenir-ne una entrada pel seu id
valor de la propietat. Per fer-ho, tenim el getTodosById
mètode getter, que retorna una funció. La funció retorna posteriorment l'entrada del state.todos
array trucant find
per obtenir el valor pel seu id
valor.
Al component, anomenem Vuex.mapGetters
de la mateixa manera per assignar el mètode a una propietat calculada. Llavors podem anomenar la funció que retorna per obtenir l’element de tasca mitjançant el seu id
valor. Per tant, 'drink'
s'hauria de mostrar a la pantalla del navegador ja que té id: 1
.
Mutacions
Ja hem vist una mutació en els exemples anteriors; només és un mètode que podem utilitzar per modificar un estat.
Un mètode de mutació pot tenir una càrrega útil, que es pot utilitzar per modificar un valor d'estat. Per exemple, podem escriure:
falta el connector de control remot elgato
App increment {{count}}
const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment(state, n) { state.count += n; } } }); const app = Vue.createApp({ methods: { increment() { this.$store.commit('increment', 5); } }, computed: { count() { return this.$store.state.count; } } }); app.use(store); app.mount('#app');
El nostre increment
el mètode de mutació té un n
paràmetre que s'utilitza per augmentar el valor del count
estat. Aleshores, anomenem el this.$store.commit
mètode amb un segon argument per passar el valor al increment
mètode. n
ara hauria de ser 5
, de manera que el count
L’estat Vuex s’incrementaria en cinc.
on comprar heli hnt
La mutació de l'estil d'objecte es commet
Podem passar un objecte al this.$store.commit
mètode. Per exemple, podem escriure:
App increment {{count}}
const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment(state, { amount }) { state.count += amount; } } }); const app = Vue.createApp({ methods: { increment() { this.$store.commit({ type: 'increment', amount: 5 }); } }, computed: { count() { return this.$store.state.count; } } }); app.use(store); app.mount('#app');
Vam trucar a this.$store.commit
amb un objecte amb el type
i amount
propietats.
El type
La propietat s’utilitza per trobar el nom del mètode de mutació al qual cal trucar. Per tant, trucarem al increment
mètode de mutació, ja que aquest és el valor de type
. Les altres propietats es passaran amb l'objecte que passem com a segon argument del increment
mètode.
Així obtenim el amount
propietat del segon paràmetre de increment
i utilitzeu això per actualitzar count
de la botiga Vuex estat.
#vue #vuex #javascript #programming #developer
blog.logrocket.com
Com utilitzar Vuex 4 amb Vue 3
Obteniu informació sobre com utilitzar Vuex 4 amb Vue 3. Vuex és la solució de gestió d'estats preferida per a les aplicacions Vue i Vuex 4 és la versió compatible amb Vue 3.