mirror of https://github.com/vuejs/core.git
refactor(runtime-core): replace vnode.shapeFlag checks with existed functions
This commit is contained in:
parent
a20a4cb36a
commit
a866b288b6
|
@ -3,6 +3,7 @@ import {
|
|||
type Data,
|
||||
type FunctionalComponent,
|
||||
getComponentName,
|
||||
isStatefulComponent,
|
||||
} from './component'
|
||||
import {
|
||||
Comment,
|
||||
|
@ -63,6 +64,7 @@ export function renderComponentRoot(
|
|||
inheritAttrs,
|
||||
} = instance
|
||||
const prev = setCurrentRenderingInstance(instance)
|
||||
const isStateful = isStatefulComponent(instance)
|
||||
|
||||
let result
|
||||
let fallthroughAttrs
|
||||
|
@ -71,7 +73,7 @@ export function renderComponentRoot(
|
|||
}
|
||||
|
||||
try {
|
||||
if (vnode.shapeFlag & ShapeFlags.STATEFUL_COMPONENT) {
|
||||
if (isStateful) {
|
||||
// withProxy is a proxy with a different `has` trap only for
|
||||
// runtime-compiled render functions using `with` block.
|
||||
const proxyToUse = withProxy || proxy
|
||||
|
@ -154,9 +156,8 @@ export function renderComponentRoot(
|
|||
|
||||
if (fallthroughAttrs && inheritAttrs !== false) {
|
||||
const keys = Object.keys(fallthroughAttrs)
|
||||
const { shapeFlag } = root
|
||||
if (keys.length) {
|
||||
if (shapeFlag & (ShapeFlags.ELEMENT | ShapeFlags.COMPONENT)) {
|
||||
if (isElementRoot(root)) {
|
||||
if (propsOptions && keys.some(isModelListener)) {
|
||||
// If a v-model listener (onUpdate:xxx) has a corresponding declared
|
||||
// prop, it indicates this component expects to handle v-model and
|
||||
|
@ -210,8 +211,8 @@ export function renderComponentRoot(
|
|||
if (
|
||||
__COMPAT__ &&
|
||||
isCompatEnabled(DeprecationTypes.INSTANCE_ATTRS_CLASS_STYLE, instance) &&
|
||||
vnode.shapeFlag & ShapeFlags.STATEFUL_COMPONENT &&
|
||||
root.shapeFlag & (ShapeFlags.ELEMENT | ShapeFlags.COMPONENT)
|
||||
isStateful &&
|
||||
isElementRoot(root)
|
||||
) {
|
||||
const { class: cls, style } = vnode.props || {}
|
||||
if (cls || style) {
|
||||
|
|
Loading…
Reference in New Issue