refactor(runtime-core): extract key/ref normalization logic
This commit is contained in:
parent
ad2b940c17
commit
c9f10be9de
@ -239,6 +239,16 @@ const createVNodeWithArgsTransform = (
|
||||
|
||||
export const InternalObjectKey = `__vInternal`
|
||||
|
||||
const normalizeKey = ({ key }: VNodeProps): VNode['key'] =>
|
||||
key != null ? key : null
|
||||
|
||||
const normalizeRef = ({ ref }: VNodeProps): VNode['ref'] =>
|
||||
(ref != null
|
||||
? isArray(ref)
|
||||
? ref
|
||||
: [currentRenderingInstance!, ref]
|
||||
: null) as any
|
||||
|
||||
export const createVNode = (__DEV__
|
||||
? createVNodeWithArgsTransform
|
||||
: _createVNode) as typeof _createVNode
|
||||
@ -312,11 +322,8 @@ function _createVNode(
|
||||
_isVNode: true,
|
||||
type,
|
||||
props,
|
||||
key: props && props.key != null ? props.key : null,
|
||||
ref:
|
||||
props && props.ref != null
|
||||
? [currentRenderingInstance!, props.ref]
|
||||
: null,
|
||||
key: props && normalizeKey(props),
|
||||
ref: props && normalizeRef(props),
|
||||
scopeId: currentScopeId,
|
||||
children: null,
|
||||
component: null,
|
||||
@ -373,13 +380,8 @@ export function cloneVNode<T, U>(
|
||||
_isVNode: true,
|
||||
type: vnode.type,
|
||||
props,
|
||||
key: props && props.key != null ? props.key : null,
|
||||
ref:
|
||||
props && props.ref != null
|
||||
? isArray(props.ref)
|
||||
? props.ref
|
||||
: [currentRenderingInstance!, props.ref]
|
||||
: null,
|
||||
key: props && normalizeKey(props),
|
||||
ref: props && normalizeRef(props),
|
||||
scopeId: vnode.scopeId,
|
||||
children: vnode.children,
|
||||
target: vnode.target,
|
||||
|
Loading…
Reference in New Issue
Block a user