vue.observable

Alex Kalinin
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,
});

--

--