diff --git a/lib/app/client.js b/lib/app/client.js index d5c10ba24b..33949f98c2 100644 --- a/lib/app/client.js +++ b/lib/app/client.js @@ -393,11 +393,12 @@ function fixPrepatch(to, ___) { Vue.nextTick(() => { const matches = [] const instances = getMatchedComponentsInstances(to, matches) + const Components = getMatchedComponents(to, matches) instances.forEach((instance, i) => { if (!instance) return // if (!this._queryChanged && to.matched[matches[i]].path.indexOf(':') === -1 && to.matched[matches[i]].path.indexOf('*') === -1) return // If not a dynamic route, skip - if (instance.constructor._dataRefresh && _lastPaths[i] === instance.constructor._path && typeof instance.constructor.options.data === 'function') { + if (instance.constructor._dataRefresh && Components[i] === instance.constructor && typeof instance.constructor.options.data === 'function') { const newData = instance.constructor.options.data.call(instance) for (let key in newData) { Vue.set(instance.$data, key, newData[key])