code: function fixPrepatch(to, ___) {
    if (this._pathChanged === false && this._queryChanged === false) return
  
    Vue.nextTick(() => {
      const matches = []
      const instances = getMatchedComponentsInstances(to, matches)
  
      instances.forEach((instance, i) => {
        if (!instance) return
        if (to.matched[matches[i]].path.indexOf(':') === -1) return // If not a dyanmic route, skip
        if (instance.constructor._dataRefresh && _lastPaths[i] === instance.constructor._path && 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])
          }
        }
      })
      showNextPage.call(this, to)
      
    })
  }
docs: When navigating on a different route but the same component is used, Vue.js Will not update the instance data, so we have to update $data ourselves