From ca5f39ee3501a1d9cacdb74108318c15ee7c0abb Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 9 Mar 2020 16:15:49 -0400 Subject: [PATCH] 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. --- packages/runtime-core/src/hydration.ts | 4 ++-- packages/runtime-core/src/renderer.ts | 16 ++++++++-------- packages/runtime-dom/src/patchProp.ts | 2 +- packages/runtime-test/src/patchProp.ts | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/runtime-core/src/hydration.ts b/packages/runtime-core/src/hydration.ts index c38ea949746..93716ebb862 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 85efd7d32a2..741beafec2d 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 fa2ff3f46ce..5799a13b1fe 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 381d73b2d42..9c4bfca583f 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,