vue+ts(一)
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142828021-1741693082.png)
在ts环境下,Vue组件有三种定义方式:
1、类的形式
2、扩展的形式
3、传统的函数式组件
类的形式--类组件
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142837211-1453179030.png)
** 类组件的注册
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142844608-1265095308.png)
** 如果没有装饰器,我们就无法将一个类识别成组件。
元数据 ---data
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142852813-326424577.png)
**自定义的类型接口可能在项目其它地方也有用到,所以需要把接口单独拿出去:
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142904656-791031070.png)
事件方法
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142913280-321845091.png)
计算属性
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142919381-687373041.png)
钩子函数
与之前一样
接收属性 props
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142927168-724763395.png)
属性监听
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142934510-1298327696.png)
ref引用元素或组件
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142942068-1358969234.png)
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627142952947-1066158658.png)
指令、过滤器
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627143000110-9821343.png)
扩展式的组件
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627143006618-2126905242.png)
*扩展式组件的元数据、事件跟之前vue写法一样。
函数式的组件
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627143013541-142079406.png)
** 函数式组件不存在元数据,不存在计算属性,是一个纯UI组件
** 函数式组件只有props,默认上下文就有props
子组件:
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627143020106-631234280.png)
** 可以调用父组件里的方法 parent
父组件:
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627143029592-1185694405.png)
![](https://img2020.cnblogs.com/blog/1520288/202106/1520288-20210627143046798-844594132.png)
博主掘金技术社区地址——https://juejin.cn/user/1908407918660871/posts