refactor(runtime-core): replace vnode.shapeFlag checks with existed functions

This commit is contained in:
NoTwoBoy 2024-11-15 18:33:47 +08:00
parent a20a4cb36a
commit a866b288b6
1 changed files with 6 additions and 5 deletions

View File

@ -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) {