vue.observable
1 min readMay 1, 2019
If we have data, used just inside one small amount of components (logical module), we can use Vue.observable instead of Vuex, like this:
import Vue from 'vue';
import * as Api from 'some/api';
import _ from 'lodash';const defaultStructure = {
isLoading: true,
value: -1,
};const store = Vue.observable(_.cloneDeep(defaultStructure));export function loadDataFromServer(){
store.isLoading = true;
Api.getData()
.then(data => {
store.value = data.value;
store.isLoading = false;
})
}export default store;
or even simpler, if don’t need helpers:
import Vue from 'vue';export default Vue.observable({
isLoading: true,
value: -1,
});