diff --git a/packages/uni-mp-vue/dist/vue.runtime.esm.js b/packages/uni-mp-vue/dist/vue.runtime.esm.js index 17708e785cf3b27d5251c3d2adf38ba43528826f..38d760510af91027cb259998eb798c390adf9e90 100644 --- a/packages/uni-mp-vue/dist/vue.runtime.esm.js +++ b/packages/uni-mp-vue/dist/vue.runtime.esm.js @@ -2022,7 +2022,17 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM } else { // default: 'pre' - scheduler = () => queuePreFlushCb(job); + scheduler = () => { + if (!instance || instance.isMounted) { + queuePreFlushCb(job); + } + else { + // with 'pre' option, the first call must happen before + // the component is mounted so it is called synchronously. + // fixed by xxxxxx https://github.com/dcloudio/uni-app/issues/3648 + job(); + } + }; } const effect = new ReactiveEffect(getter, scheduler); if ((process.env.NODE_ENV !== 'production')) {