Недавно перешел с PolymerJS на VueJS для некоторых задач. Совместно с polymer использовал Redux через библиотеку polymer-redux. Поэтому вся бизнес-логика уже была сформирована на уровне redux store. Для связки vue и redux выбрал библиотеку vuedeux. В awesome vue в разделе redux представлена еще одна библиотека для связки с redux — revue, но мне показалось эффективней использовать именно vuedeux, за счет интеграции redux store непосредственно в «свой redux» для vue — vuex, для возможного использования его в будущем.
После создание vuex store, используя плагин vuedeux доступ к необходимым разделам redux store может быть осуществлен через computed свойства экземпляра vue-компонента. Например, вот так (часть кода из examples):
...
computed: {
todos () {
return this.$store.state.redux.todos
},
...
}
...
new Vue({
...
data: {
reduxActions: actionCreators,
},
...
});
methods: {
addTodo () {
this.$store.dispatch(this.$root.reduxActions.addingTodo(text))
},
...
}
methods: {
...mapActions({
toggleAll: 'COMPLETE_ALL',
clearCompleted: 'CLEAR_COMPLETED'
}),
...
}
import reduxStoreMixin from "redux-store-mixin";
import {actionCreators} from "store/store";
import { mapState } from "vuex";
new Vue({
mixins: [
...
reduxStoreMixin(actionCreators),
...
],
computed: {
...mapState({
prop1: state => state.redux.map.prop1,
...
propN: state => state.redux.map.propN
}),
...
},
...
});
this.reduxActions(<name action creator>, ...args);
К сожалению, не доступен сервер mySQL