vue3 的 defineProp和 defineEmit 为何只能定义一次?-灵析社区

抠香糖

关键看你想怎么分离逻辑,分享和合并永远是需要找到一个平衡点的,比如你问题中的定义,可以这样: const props = defineProps(); 从 TypeScript 的角度来分析,这个语法可以非常清楚的描述,`props` 是这样一个对象,它符合接口 `{ count: number; label?: string }` 描述,其中 `number` 是必填,而 `label` 是可选。如果想为属性赋予默认值,可以使用 `withDefaults()`。 如果你想把属性拆开来使用,可以 const { label, count } = toRefs(props); 扯远了。作为一个组件,属性是它不可分割的一部分,在定义组件的时候它的属性就是应该规划好的,所以一次性定义出来没什么问题(事件也是如此),甚至从语义上来说会更容易阅读和理解。而真正的分离,应该是在组件变得越来越大的时候,把一个大组件拆分成多个小组件来组合,而不是从代码上直接拆分定义内容。 > 注:当然,拆分代码的事情,C# 干过(partial > 类/方法),而且很好用。但是那不是为了分离逻辑,多数情况下是为了分离自动/生成代码和手工代码,拆分的不是逻辑而是工作量 参考:[ | Vue.js (vuejs.org)](https://link.segmentfault.com/?enc=i0nSTiIIeLgps7MWcrXG8w%3D%3D.0l%2BS0kMLXZmfaRUSnnhROLYgQyN6gB4%2FelB9e9tT2S5Ta34Gl1iKVuWgyDvqmUHwUk3DYAjzhkqPNWOmX%2FJ7QSsGvyfWhZns7VONz2T9KFM%3D)

阅读量:1

点赞量:0

问AI