首页 > 其他分享 >开发一个属性名提示友好的Vue组件

开发一个属性名提示友好的Vue组件

时间:2024-08-18 09:04:21浏览次数:6  
标签:Vue 提示 vue export 组件 ErasableLayer 友好 属性

这两天开发了一个组件,开发好之后想着先本地npm link 用一用试试,然后在vue3 项目中link了过来,发现VSCODE没有属性提示,鉴于考虑到一个好的组件应该是提示友好的,于是给组件准备加上属性提示。

首先,我的组件包名叫 "xxx-xx"这种,然后我是提供了全局安装和仅导入组件的方式

import ErasableLayer from "./ErasableLayer.vue";
import { createApp } from 'vue';


export { ErasableLayer };
export default {
  install(app: ReturnType<typeof createApp>) {
    app.component("ErasableLayer", ErasableLayer);
  }
};

于是写类型文件的话,就要按照入口文件的内容来写

declare module "erasable-pkg" {
  import { App, DefineComponent } from "vue";


  export const ErasableLayer: DefineComponent<{
    layerColor?: string;
    renderLayer?: (ctx: CanvasRenderingContext2D, w: number, h: number) => void;
  }, {}, {
    done: () => void;
  }>;

  export default {
    install(app: App) {
      app.component("ErasableLayer", ErasableLayer);
    },
  };
}

首先定义一个module表示我这个模块,然后借用Vue的DefineComponent来生成我的组件的属性,和emit事件的类型,

然后导出一个vue.use安装插件的方法,最后需要在你的包的package.json中指定你的types,

 

{
  "name": "erasable-pkg",
  "version": "1.0.0",
  "description": "",
  "main": "./dist/index.js",

  "types": "./types/index.d.ts"
}

这样的话,在使用组件的时候就会有属性提示了,如图:

 

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

经过我测试,发现VSCode是可以提示的,webstorm属性提示加载不出来。

标签:Vue,提示,vue,export,组件,ErasableLayer,友好,属性
From: https://www.cnblogs.com/aursordev/p/18365288

相关文章

  • 013、Vue3+TypeScript基础,computed计算属性的使用,结果会被缓存
    01、App.vue代码如下:<template><divclass="app"><h2>{{title}}</h2><!--使用了ref来获取子组件的属性--><Person/></div></template><scriptlang="ts"setupname="App"......
  • 基于springboot和vue的酒店管理系统设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言具体实现截图详细视频演示技术栈系统测试为什么选择我官方认证闲鱼玩家,服务很多代码文档,百分百好评,战绩可查!!入职于互联网大厂,可以交流,共同进步。有保障的售后代码参考数据库参考源码获取前言......
  • VUE基础
    1.VUE简介它是一个构建用户界面的框架Vue是一个前端框架jsjqVue(发音为/vjuː/,类似view)是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的......
  • Vue脚手架
    【Vue的环境搭建】1.【掌握】node和npm的说明1.1什么是node和npmNode:是JavaScript的运行时环境。Node并不是一个新的语言,只是js的一个环境,同样的比如:tomcat。Node为js提供了更强大的操作方式,如:在浏览器中,js是无法操作文件的,而node提供了文件操作。在浏览器中,js无法写服务接口,no......
  • Asp.net core SignalR + Vue
    简介:ASP.NETSignalR是一个ASP.NET下的类库,可以在ASP.NET的Web项目中实现实时通信。本文主要讲述如何在Vue.js中使用SignalR,以及断开重连。知识点:前端SignalR的安装如何设置自动重新连接的次数SignalR有关连接的函数自动重连全部失败后,定时重连ASP.NETCORESig......
  • 012、Vue3+TypeScript基础,子页面使用defineExpose暴露成员来给主页面使用
    01、App.vue代码如下:<template><divclass="app"><h2>{{title}}</h2><button@click="showLog">点我数组子页面年龄</button><!--使用了ref来获取子组件的属性--><Personref="person001"/......
  • 011、Vue3+TypeScript基础,template中ref的用法意义
    1、如果多个页面都用同一个id,那么就会报错。用ref可以指明是某个元素,规避报错情况。App.vue代码如下:<template><divclass="app"><h2ref="title2">好好学习,天天向上</h2><button@click="showLog">点我输出h2元素</button><Person/&g......
  • 010、Vue3+TypeScript基础,通过toRefs和toRef把对象的属性变成响应式引用
    1、App.vue代码如下:<template><divclass="app"><h1>好好学习,天天向上</h1><Person/></div></template><script>//JS或TSimportPersonfrom'./view/Person.vue'exportdefault{//A......
  • 基于flask+vue框架的学分预警系统[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育规模的不断扩大与学分制的深入实施,学生个性化学习需求日益增长,但同时也带来了学业管理上的新挑战。传统的人工管理方式在监控......
  • 基于flask+vue框架的民宿管理系统5f6j4[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,随着旅游业的蓬勃发展和消费者对个性化旅行体验的追求,民宿作为一种新兴住宿方式迅速崛起。然而,随着民宿市场的不断扩大,其管理难度也......