setUp 函数的作用就是为 Composition API 在组件中使用提供入口。意思就是你要使用 Composition API,在组件中必须提供 setUp 函数。
<template>
<div>
<button @click="increment">
{{target.name}} tapped {{times}} times
</button>
</div>
</template>
<script>
import { createComponent, ref, reactive } from '@vue/composition-api'
export default createComponent({
// 组件被创建时setUp函数被调用
setup() {
let times = ref(0)
let target = reactive({
name: 'Button'
})
const increment = () => {
times.value++
}
//把属性暴露给template
return {
times,
target,
increment
}
}
})
</script>
<script>
import { createComponent } from '@vue/composition-api'
export default createComponent({
props: {
greet: {
type: String,
default: 'Hello Vue3!'
}
},
setup(props) {
console.log(props.greet) //输出 'Hello Vue3!'
}
})
</script>
<script>
import { createComponent } from '@vue/composition-api'
export default createComponent({
setup(props, context) {
context.attrs
context.slots
context.parent
context.root
context.emit
}
})
</script>
<script>
import { createComponent } from '@vue/composition-api'
export default createComponent({
setup(props, context) {
context.root.$on('test', function(msg) {
console.log(msg) // 'hi'
})
context.root.$emit('test', 'hi')
}
})
</script>