isSVG,
props && props.is
)
+
+ // mount children first, since some props may rely on child content
+ // being already rendered, e.g. `<select value>`
+ if (shapeFlag & ShapeFlags.TEXT_CHILDREN) {
+ hostSetElementText(el, vnode.children as string)
+ } else if (shapeFlag & ShapeFlags.ARRAY_CHILDREN) {
+ mountChildren(
+ vnode.children as VNodeArrayChildren,
+ el,
+ null,
+ parentComponent,
+ parentSuspense,
+ isSVG && type !== 'foreignObject',
+ optimized || !!vnode.dynamicChildren
+ )
+ }
+
// props
if (props) {
for (const key in props) {
hostSetScopeId(el, treeOwnerId + '-s')
}
- // children
- if (shapeFlag & ShapeFlags.TEXT_CHILDREN) {
- hostSetElementText(el, vnode.children as string)
- } else if (shapeFlag & ShapeFlags.ARRAY_CHILDREN) {
- mountChildren(
- vnode.children as VNodeArrayChildren,
- el,
- null,
- parentComponent,
- parentSuspense,
- isSVG && type !== 'foreignObject',
- optimized || !!vnode.dynamicChildren
- )
- }
if (transition && !transition.persisted) {
transition.beforeEnter(el)
}
})
expect(ops[1]).toEqual({
+ type: NodeOpTypes.SET_ELEMENT_TEXT,
+ text: 'hello',
+ targetNode: root.children[0]
+ })
+
+ expect(ops[2]).toEqual({
type: NodeOpTypes.PATCH,
targetNode: root.children[0],
propKey: 'id',
propNextValue: 'test'
})
- expect(ops[2]).toEqual({
- type: NodeOpTypes.SET_ELEMENT_TEXT,
- text: 'hello',
- targetNode: root.children[0]
- })
-
expect(ops[3]).toEqual({
type: NodeOpTypes.INSERT,
targetNode: root.children[0],