-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Abri essa thread no twitter falando sobre como usar um state management mais simples no Vue.js em casos de projetos mais simples, usando o Vue.observable(Vue +2.6.6) ou o Vue.defineReactive em situações de versão inferior ao Vue 2.6
A implementação fica assim:
store.js
function createStore({ state, mutations }) {
return {
state: Vue.observable(state),
commit(key, ...args) {
mutations[key](state, ...args)
}
}
}
const store = createStore({
state: { list: [] },
mutations: {
populateList (state) {
state.list = ['Igor', 'Halfeld']
}
}
})component.vue
<template>
<ul>
<li v-for="(item, index) in list" :key="index">{{ item }}</li>
<ul>
</template>
<script>
import Store from './store'
export default {
data: () => ({
list: Store.state.list,
})
mounted() {
Store.commit('populateList')
}
}
</script>Muita gente se perguntou o por quê de usar dessa forma, pois parece que estou reinventando a roda, na real estou sim, mas nesse caso é pra ter toda praticidade de ter um state management e ter também um bundle menor, já que eu não preciso de features do Vuex como o watch, subscribeMutation, subscribeAction, etc.. em projetos simples.
helioh3, VitorLuizC, cmpsleo, JoseCage, henrilhos and 9 more