Vue3 script setup中简化API引入是否为不良实践?
在Vue3 script setup中用
$调用Vue API是否属于不良实践? 这种用法确实属于不良实践,核心原因如下:
可读性与协作成本飙升
团队里其他开发者看到$.ref(null)时,第一反应会困惑这个$的来源——是遗留的jQuery全局变量?还是自定义的工具对象?必须额外查找变量定义才能理解代码逻辑,大大增加了协作时的沟通和理解成本。相比之下,import { ref } from 'vue'是Vue社区通用的写法,一眼就能明白是引入了Vue的响应式API。丢失TypeScript类型支持
Vue的官方API都附带完善的TypeScript类型定义,直接按需引入时,编辑器会提供精准的参数提示、类型校验和文档说明,能帮你提前避免很多语法和逻辑错误。但用$.ref这种方式调用,TypeScript无法准确推断API的类型,写代码时不仅没有提示,还容易出现类型不兼容的问题,反而降低了开发效率。违背Composition API的设计初衷
Vue3的Composition API采用显式依赖引入的设计,目的是让组件用到的API清晰可见,代码逻辑更可控。把Vue赋值给$后隐式调用API,相当于绕开了这种设计,让组件的依赖关系变得模糊,失去了Composition API带来的代码清晰度优势。存在命名冲突风险
$在Vue生态中有特殊的约定含义,比如组件实例上的$refs、$router、$store等内置属性都是以$开头。自行把Vue赋值给$,很可能和这些内置属性或第三方库的全局变量产生冲突,后续排查问题会非常棘手。
内容的提问来源于stack exchange,提问作者Király István
相关产品推荐
相关产品推荐

