From 25a8d13c6fb32f89f4695a94a899107b732e3140 Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 10 Oct 2022 20:42:02 +0800 Subject: [PATCH] fix(mp): cloneWithData exclude Vue/MP instance #2979 --- .../packages/mp-vue/dist/mp.runtime.esm.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js b/packages/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js index 88666057c..e496d7058 100644 --- a/packages/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js +++ b/packages/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js @@ -5597,6 +5597,16 @@ function nextTick$1(vm, cb) { /* */ +function clearInstance(key, value) { + // 简易去除 Vue 和小程序组件实例 + if (value) { + if (value._isVue || (value.$vm && value.$vm._isVue)) { + return {} + } + } + return value +} + function cloneWithData(vm) { // 确保当前 vm 所有数据被同步 var ret = Object.create(null); @@ -5628,7 +5638,7 @@ function cloneWithData(vm) { ret['value'] = vm.value; } - return JSON.parse(JSON.stringify(ret)) + return JSON.parse(JSON.stringify(ret, clearInstance)) } var patch = function(oldVnode, vnode) { -- GitLab