}
const Mid = {
+ props: ['count'],
setup(props: any) {
onBeforeMount(() => calls.push('mid onBeforeMount'))
onMounted(() => calls.push('mid onMounted'))
}
const Child = {
+ props: ['count'],
setup(props: any) {
onBeforeMount(() => calls.push('child onBeforeMount'))
onMounted(() => calls.push('child onMounted'))
expect(dummy).toBe(1)
})
- it('setup props should resolve the correct types from props object', async () => {
- const count = ref(0)
- let dummy
-
- const Parent = {
- render: () => h(Child, { count: count.value })
- }
-
- const Child = defineComponent({
- props: {
- count: Number
- },
-
- setup(props) {
- watchEffect(() => {
- dummy = props.count
- })
- return () => h('div', props.count)
- }
- })
-
- const root = nodeOps.createElement('div')
- render(h(Parent), root)
- expect(serializeInner(root)).toMatch(`<div>0</div>`)
- expect(dummy).toBe(0)
-
- // props should be reactive
- count.value++
- await nextTick()
- expect(serializeInner(root)).toMatch(`<div>1</div>`)
- expect(dummy).toBe(1)
- })
-
it('context.attrs', async () => {
const toggle = ref(true)