import Child from "./views/child.vue";
const getName = (name: any) => {
console.log(name);
};
const list = [
{
name: "张三",
age: 18,
},
{
name: "李四",
age: 20,
},
];
组件:
// 普通的方式
import type { PropType } from "vue";
// defineSlots 只有声明没有实现 没有任何参数 只能接受ts 的类型
defineSlots<{
default(props: { item: any; index: number }): void;
}>();
// const props = defineProps({
// name: {
// type: Array as PropType
// required: true,
// },
// });
// const props = defineProps<{
// name: string[];
// }>();
// props.name;
defineProps<{
data: string[];
}>();
// 普通的写法定义一个数组
// const emit = defineEmits(["send"]);
// ts写法
// const emit = defineEmits<{
// (event: string, name: string): void;
// }>();
// vue3.3的改进
// const emit = defineEmits<{
// send: [name: string];
// }>();
// const send = () => {
// emit("send", "hello");
// };
// vue3.3 内置了defineOptions 不需要再去下载插件了
// 它里面的属性跟optionsAPI 一模一样的
// 常用的属性定义name
defineOptions({
name: "xm",
});
效果图:
推荐文章
发表评论