From: Evan You Date: Mon, 9 Mar 2020 20:15:49 +0000 (-0400) Subject: refactor(runtime-core): adjust patchProp value arguments order X-Git-Tag: v3.0.0-alpha.9~47 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ca5f39ee3501a1d9cacdb74108318c15ee7c0abb;p=thirdparty%2Fvuejs%2Fcore.git refactor(runtime-core): adjust patchProp value arguments order BREAKING CHANGE: `RendererOptions.patchProp` arguments order has changed The `prevValue` and `nextValue` position has been swapped to keep it consistent with other functions in the renderer implementation. This only affects custom renderers using the `createRenderer` API. --- diff --git a/packages/runtime-core/src/hydration.ts b/packages/runtime-core/src/hydration.ts index c38ea94974..93716ebb86 100644 --- a/packages/runtime-core/src/hydration.ts +++ b/packages/runtime-core/src/hydration.ts @@ -147,13 +147,13 @@ export function createHydrationFunctions({ ) { for (const key in props) { if (!isReservedProp(key) && isOn(key)) { - patchProp(el, key, props[key], null) + patchProp(el, key, null, props[key]) } } } else if (props.onClick != null) { // Fast path for click listeners (which is most often) to avoid // iterating through props. - patchProp(el, 'onClick', props.onClick, null) + patchProp(el, 'onClick', null, props.onClick) } // vnode hooks const { onVnodeBeforeMount, onVnodeMounted } = props diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 85efd7d32a..741beafec2 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -85,8 +85,8 @@ export interface RendererOptions { patchProp( el: HostElement, key: string, - value: any, - oldValue: any, + prevValue: any, + nextValue: any, isSVG?: boolean, prevChildren?: VNode[], parentComponent?: ComponentInternalInstance | null, @@ -541,7 +541,7 @@ function baseCreateRenderer< if (props != null) { for (const key in props) { if (!isReservedProp(key)) { - hostPatchProp(el, key, props[key], null, isSVG) + hostPatchProp(el, key, null, props[key], isSVG) } } if (props.onVnodeBeforeMount != null) { @@ -667,14 +667,14 @@ function baseCreateRenderer< // this flag is matched when the element has dynamic class bindings. if (patchFlag & PatchFlags.CLASS) { if (oldProps.class !== newProps.class) { - hostPatchProp(el, 'class', newProps.class, null, isSVG) + hostPatchProp(el, 'class', null, newProps.class, isSVG) } } // style // this flag is matched when the element has dynamic style bindings if (patchFlag & PatchFlags.STYLE) { - hostPatchProp(el, 'style', newProps.style, oldProps.style, isSVG) + hostPatchProp(el, 'style', oldProps.style, newProps.style, isSVG) } // props @@ -694,8 +694,8 @@ function baseCreateRenderer< hostPatchProp( el, key, - next, prev, + next, isSVG, n1.children as HostVNode[], parentComponent, @@ -814,8 +814,8 @@ function baseCreateRenderer< hostPatchProp( el, key, - next, prev, + next, isSVG, vnode.children as HostVNode[], parentComponent, @@ -830,8 +830,8 @@ function baseCreateRenderer< hostPatchProp( el, key, - null, oldProps[key], + null, isSVG, vnode.children as HostVNode[], parentComponent, diff --git a/packages/runtime-dom/src/patchProp.ts b/packages/runtime-dom/src/patchProp.ts index fa2ff3f46c..5799a13b1f 100644 --- a/packages/runtime-dom/src/patchProp.ts +++ b/packages/runtime-dom/src/patchProp.ts @@ -9,8 +9,8 @@ import { RendererOptions } from '@vue/runtime-core' export const patchProp: RendererOptions['patchProp'] = ( el, key, - nextValue, prevValue, + nextValue, isSVG = false, prevChildren, parentComponent, diff --git a/packages/runtime-test/src/patchProp.ts b/packages/runtime-test/src/patchProp.ts index 381d73b2d4..9c4bfca583 100644 --- a/packages/runtime-test/src/patchProp.ts +++ b/packages/runtime-test/src/patchProp.ts @@ -4,8 +4,8 @@ import { isOn } from '@vue/shared' export function patchProp( el: TestElement, key: string, - nextValue: any, - prevValue: any + prevValue: any, + nextValue: any ) { logNodeOp({ type: NodeOpTypes.PATCH,