提交 efce3dcf 编写于 作者: fxy060608's avatar fxy060608

fix(v3): recursively remove element

上级 8cc96629
...@@ -10906,7 +10906,10 @@ var serviceContext = (function () { ...@@ -10906,7 +10906,10 @@ var serviceContext = (function () {
} }
} }
function request$1 (args, callbackId) { function request$1 (args, callbackId) {
if (args.method !== 'GET' && args.header['Content-Type'].indexOf('application/json') === 0 && isPlainObject(args.data)) {
args.data = JSON.stringify(args.data);
}
const { const {
requestTaskId requestTaskId
} = invokeMethod('createRequestTask', args); } = invokeMethod('createRequestTask', args);
......
...@@ -6070,8 +6070,7 @@ function createPatchFunction (backend) { ...@@ -6070,8 +6070,7 @@ function createPatchFunction (backend) {
function removeAndInvokeRemoveHook (vnode, rm) { function removeAndInvokeRemoveHook (vnode, rm) {
if (isDef(rm) || isDef(vnode.data)) { if (isDef(rm) || isDef(vnode.data)) {
var i; var i, children;
var children;
var listeners = cbs.remove.length + 1; var listeners = cbs.remove.length + 1;
if (isDef(rm)) { if (isDef(rm)) {
// we have a recursively passed down rm callback // we have a recursively passed down rm callback
...@@ -6084,9 +6083,10 @@ function createPatchFunction (backend) { ...@@ -6084,9 +6083,10 @@ function createPatchFunction (backend) {
// recursively invoke hooks on child component root node // recursively invoke hooks on child component root node
if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) { if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
removeAndInvokeRemoveHook(i, rm); removeAndInvokeRemoveHook(i, rm);
} else if(isDef(children = vnode.children)) { } else if (isDef(children = vnode.children)) {
// service层获取不到componentInstance,暂用此方式递归 // app-plus service 层 elm 暂未实现父子关系维护,移除父 elm 时,导致子 elm 还存留(影响了事件查找)
for (var i = 0; i < children.length; i++) { // 暂时使用 vnode 的 children 递归 rm 掉子 elm
for (i = 0; i < children.length; i++) {
if (children[i].tag) { if (children[i].tag) {
removeAndInvokeRemoveHook(children[i]); removeAndInvokeRemoveHook(children[i]);
} }
...@@ -6787,7 +6787,7 @@ function updateDOMListeners (oldVnode, vnode) { ...@@ -6787,7 +6787,7 @@ function updateDOMListeners (oldVnode, vnode) {
var on = vnode.data.on || {}; var on = vnode.data.on || {};
var oldOn = oldVnode.data.on || {}; var oldOn = oldVnode.data.on || {};
target$1 = vnode.elm; target$1 = vnode.elm;
// fixed by xxxxxx 存储 vd // fixed by xxxxxx 存储 vd
target$1._$vd = vnode.context._$vd; target$1._$vd = vnode.context._$vd;
var context = vnode.context; var context = vnode.context;
......
...@@ -5288,8 +5288,7 @@ function createPatchFunction (backend) { ...@@ -5288,8 +5288,7 @@ function createPatchFunction (backend) {
function removeAndInvokeRemoveHook (vnode, rm) { function removeAndInvokeRemoveHook (vnode, rm) {
if (isDef(rm) || isDef(vnode.data)) { if (isDef(rm) || isDef(vnode.data)) {
var i; var i, children;
var children;
var listeners = cbs.remove.length + 1; var listeners = cbs.remove.length + 1;
if (isDef(rm)) { if (isDef(rm)) {
// we have a recursively passed down rm callback // we have a recursively passed down rm callback
...@@ -5302,9 +5301,10 @@ function createPatchFunction (backend) { ...@@ -5302,9 +5301,10 @@ function createPatchFunction (backend) {
// recursively invoke hooks on child component root node // recursively invoke hooks on child component root node
if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) { if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
removeAndInvokeRemoveHook(i, rm); removeAndInvokeRemoveHook(i, rm);
} else if(isDef(children = vnode.children)) { } else if (isDef(children = vnode.children)) {
// service层获取不到componentInstance,暂用此方式递归 // app-plus service 层 elm 暂未实现父子关系维护,移除父 elm 时,导致子 elm 还存留(影响了事件查找)
for (var i = 0; i < children.length; i++) { // 暂时使用 vnode 的 children 递归 rm 掉子 elm
for (i = 0; i < children.length; i++) {
if (children[i].tag) { if (children[i].tag) {
removeAndInvokeRemoveHook(children[i]); removeAndInvokeRemoveHook(children[i]);
} }
...@@ -5936,7 +5936,7 @@ function updateDOMListeners (oldVnode, vnode) { ...@@ -5936,7 +5936,7 @@ function updateDOMListeners (oldVnode, vnode) {
var on = vnode.data.on || {}; var on = vnode.data.on || {};
var oldOn = oldVnode.data.on || {}; var oldOn = oldVnode.data.on || {};
target$1 = vnode.elm; target$1 = vnode.elm;
// fixed by xxxxxx 存储 vd // fixed by xxxxxx 存储 vd
target$1._$vd = vnode.context._$vd; target$1._$vd = vnode.context._$vd;
var context = vnode.context; var context = vnode.context;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册