跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 有什么 vue3+typescript 开发的组件,发布为 npm 包的详尽指南可供学习?
未分類
3 9 月 2020

有什么 vue3+typescript 开发的组件,发布为 npm 包的详尽指南可供学习?

有什么 vue3+typescript 开发的组件,发布为 npm 包的详尽指南可供学习?

資深大佬 : Shook 17

想要练练手写下 composition api,搜罗了很多资料。 标签页都开了五十多个,最后还是被 vue-cli + vue3 + typescript 组合拳击倒了。 整理了一些问题,今晚还要继续看,希望有经验的前辈能够回答一下:

UI 库与子组件如何组合发布?

比方说我想要开发一个 UI 库,但是它在最开始只有零星的组件可供使用。 这时候,我能否将 UI 库和组件分别作为 NPM 包发布? 虽然我希望结果是这样的,但是想不到怎么做:

npm install @vueui // UI 库,暴露往根部 vue 实例挂载 UI 库所有组件的 install 方法 npm install @vueui/confirm // vue 组件,暴露挂载单独组件的 install 方法 

这样的话,package.json 和 tsconfig.json 这些配置文件该怎么办呢,也要嵌套吗? 还是说只能写完了将文件复制到一个专门发布 vue 组件的模板中,然后单独发布?

vue3 + typescript 写的组件,发布前需要做什么处理?

在搜罗到的文章里,基本提到了组件要分成 src 和 dist 两个文件夹,dist 文件夹用于存放打包成.js 的组件。 不过他们有的使用 rollup 来打包,有的直接使用 vue-cli-service build,这两种方式有什么区别吗?

关于 typescript 的问题就是不懂 d.ts 是一定要写的吗,需要把自己在.vue 里面写的类型声明提取出来吗? 如果提出来,我该把这个文件引入 /声明到什么地方,才能让我在.vue 里写代码的时候能够识别 interface 呢?

vue3 里如何组织代码?

在使用 composition api + typescript 进行开发时,我有多次因为代码结构杂乱感到尿急,比如:

setup () {  // vue3 composition api 绑定 $refs 的方法,比较奇怪的  const wrap: any = ref(null);   // 直接定义一个方法  function getWrap (): HTMLElement | null {   return wrap.value ? wrap.value : null;  }   // 定义接口并实现(如果我做错了,请纠正我)  interface getWrap {   (): HTMLElement | null;  }  const getWrap: getWrap = () => wrap.value ? wrap.value : null;   return {   wrap,  }; } 

实现接口时是不是只能够以初始化变量的形式来实现? 这样的话满屏就都是 const 了。 将接口部分单独写成文件后,也因为不懂在哪引入,好好发愁了一段时间。

一些搜集

也许是许多新事物一下子涌入大脑,所以我现在比较难转过弯来,发这个帖子或许能够帮助我整理一下要做的事情。 放上一些搜到的资料,或许能帮到一些比较聪明的朋友。

  • https://zhuanlan.zhihu.com/p/38110493
  • https://zhuanlan.zhihu.com/p/46273917
  • https://www.cnblogs.com/tongjiaojiao/p/10191627.html
大佬有話說 (1)

  • 資深大佬 : agdhole

    可以参考 vuetify 正在开发的 v3 分支,ts + vue3
    https://github.com/vuetifyjs/vuetify/tree/next

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具