Skip to content

Commit f4fd8bc

Browse files
committed
[build] 2.0.0-rc.3
1 parent de2070d commit f4fd8bc

File tree

2 files changed

+31
-18
lines changed

2 files changed

+31
-18
lines changed

dist/vuex.js

+29-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* Vuex v2.0.0-rc.2
2+
* Vuex v2.0.0-rc.3
33
* (c) 2016 Evan You
44
* Released under the MIT License.
55
*/
@@ -67,7 +67,7 @@
6767
Object.keys(map).forEach(function (key) {
6868
var fn = map[key];
6969
res[key] = function mappedState() {
70-
return fn.call(this, this.$store.state);
70+
return fn.call(this, this.$store.state, this.$store.getters);
7171
};
7272
});
7373
return res;
@@ -298,6 +298,7 @@
298298
var res = handler({
299299
dispatch: dispatch,
300300
commit: commit,
301+
getters: store.getters,
301302
state: getNestedState(store.state, path),
302303
rootState: store.state
303304
}, payload, cb);
@@ -455,7 +456,7 @@
455456
var fn = getters[key];
456457
// use computed to leverage its lazy-caching mechanism
457458
computed[key] = function () {
458-
return fn(store._vm.state);
459+
return fn(store);
459460
};
460461
Object.defineProperty(store.getters, key, {
461462
get: function get() {
@@ -481,27 +482,39 @@
481482
var modules = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
482483
var path = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2];
483484

484-
if (!modules) return getters;
485+
if (!path.length) {
486+
wrapGetters(getters, getters, path, true);
487+
}
488+
if (!modules) {
489+
return getters;
490+
}
485491
Object.keys(modules).forEach(function (key) {
486492
var module = modules[key];
487493
var modulePath = path.concat(key);
488494
if (module.getters) {
489-
Object.keys(module.getters).forEach(function (getterKey) {
490-
var rawGetter = module.getters[getterKey];
491-
if (getters[getterKey]) {
492-
console.error('[vuex] duplicate getter key: ' + getterKey);
493-
return;
494-
}
495-
getters[getterKey] = function wrappedGetter(state) {
496-
return rawGetter(getNestedState(state, modulePath), state);
497-
};
498-
});
495+
wrapGetters(getters, module.getters, modulePath);
499496
}
500497
extractModuleGetters(getters, module.modules, modulePath);
501498
});
502499
return getters;
503500
}
504501

502+
function wrapGetters(getters, moduleGetters, modulePath, force) {
503+
Object.keys(moduleGetters).forEach(function (getterKey) {
504+
var rawGetter = moduleGetters[getterKey];
505+
if (getters[getterKey] && !force) {
506+
console.error('[vuex] duplicate getter key: ' + getterKey);
507+
return;
508+
}
509+
getters[getterKey] = function wrappedGetter(store) {
510+
return rawGetter(getNestedState(store.state, modulePath), // local state
511+
store.getters, // getters
512+
store.state // root state
513+
);
514+
};
515+
});
516+
}
517+
505518
function enableStrictMode(store) {
506519
store._vm.$watch('state', function () {
507520
assert(store._committing, 'Do not mutate vuex store state outside mutation handlers.');
@@ -517,9 +530,9 @@
517530
}
518531

519532
function getNestedState(state, path) {
520-
return path.reduce(function (state, key) {
533+
return path.length ? path.reduce(function (state, key) {
521534
return state[key];
522-
}, state);
535+
}, state) : state;
523536
}
524537

525538
function install(_Vue) {

dist/vuex.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)