describe.todo('dynamic component', () => {})
describe('attribute fallthrough', () => {
+ it('should fallthrough attrs to vdom child', () => {
+ const VDomChild = defineComponent({
+ setup() {
+ return () => h('div')
+ },
+ })
+
+ const VaporChild = defineVaporComponent({
+ setup() {
+ return createComponent(
+ VDomChild as any,
+ { foo: () => 'vapor foo' },
+ null,
+ true,
+ )
+ },
+ })
+
+ const { html } = define({
+ setup() {
+ return () => h(VaporChild as any, { foo: 'foo', bar: 'bar' })
+ },
+ }).render()
+ expect(html()).toBe('<div foo="foo" bar="bar"></div>')
+ })
+
it('should not fallthrough emit handlers to vdom child', () => {
const VDomChild = defineComponent({
emits: ['click'],
resetInsertionState()
}
- // vdom interop enabled and component is not an explicit vapor component
- if (appContext.vapor && !component.__vapor) {
- const frag = appContext.vapor.vdomMount(
- component as any,
- rawProps,
- rawSlots,
- )
- if (!isHydrating && _insertionParent) {
- insert(frag, _insertionParent, _insertionAnchor)
- }
- return frag
- }
-
if (
isSingleRoot &&
component.inheritAttrs !== false &&
}
}
+ // vdom interop enabled and component is not an explicit vapor component
+ if (appContext.vapor && !component.__vapor) {
+ const frag = appContext.vapor.vdomMount(
+ component as any,
+ rawProps,
+ rawSlots,
+ )
+ if (!isHydrating && _insertionParent) {
+ insert(frag, _insertionParent, _insertionAnchor)
+ }
+ return frag
+ }
+
const instance = new VaporComponentInstance(
component,
rawProps as RawProps,