本文最后更新于:2024年4月25日 上午
setup语法糖
数据自动导出可用
使用全局的setup
无需再用return
导出定义的数据即可在模板与样式中使用
1 2 3 4 5 6 7 8 9
| <script setup> import { ref } from 'vue' const count = ref(0) </script> <template> <button @click="count++"> {{ count }} </button> </template>
|
.vue文件导入组件自动注册
导入组件无需再用components
手动注册
1 2 3 4 5 6
| <script setup> import Header from '@/components/Header.vue' </script> <template> <Header /> </template>
|
props传值
使用defineProps()
来接收参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <script> const props = defineProps(['name', 'age']) </script>
<script> const props = defineProps({ name: String, age: { type: Number, default: 20, } }) </script>
|
TS支持
也可配合TypeScript
使用泛型函数定义,这样就可利用ts
的类型约束(不加可选符即为必选参数)
1 2 3 4 5 6 7
| <script lang="ts"> interface Props { name: string | undefined, age?: number } const props = defineProps<Props>() </script>
|
若使用泛型并添加默认值则需要withDefaults
1 2 3 4 5 6 7 8 9 10 11
| <script lang="ts"> interface Props { name: string, age: number[] } const props = withDefaults(defineProps<Props>(), { name: '清山', age: () => [20, 18] }) </script>
|
自定义事件