common-intellisense:助力 TinyVue 组件书写体验更丝滑
本文由体验技术团队Kagol原创~
前两天,common-intellisense 开源项目的作者 Simon-He95 在 VueConf 2024 群里发了一个重磅消息: common-intellisense 支持 TinyVue 组件库啦! common-intellisense 插件能够提供超级强大的智能提示功能,包含属性
(props)
、事件(events)
、插槽(slots)
以及对应的注释和类型,实例上的方法(methods)
等等,支持多个UI库,让你的开发效率更上一层楼。
TinyVue 是一套跨端、跨框架的企业级 UI 组件库,支持 Vue 2 和 Vue 3,支持 PC 端和移动端,包含 100 多个简洁、易用、功能强大的组件,内置 4 套精美主题。
有了 common-intellisense 的加持,我们一起来看看 TinyVue 组件的使用体验如何吧!
没有使用 common-intellisense 插件
假如你已经有了一个 Vite 工程,可通过以下方式安装 TinyVue 组件库:
npm i @opentiny/vue
然后直接在App.vue中使用:
<script setup lang="ts"> import { Alert as TinyAlert } from '@opentiny/vue' </script> <template> <tiny-alert description="这是一条提示信息" size="large"> <template #title>这是一个标题</template> </tiny-alert> </template>
组件效果如下:
组件 UI 看着挺好看的,但是开发体验却不是太好。 首先鼠标移到组件名称上,只有一些不太友好的 TypeScript 类型提示。
在组件上配置 props 名称,也不会自动提示。
接下来我们安装下 common-intellisense 插件试试看。
使用 common-intellisense 插件
确保你使用的 VSCode 代码编辑器,使用 Ctrl + Shift + X
快捷键,呼起"扩展"抽屉,输入 common-intellisense
关键字找到 common-intellisense 插件,点击安装。
组件 API 表格提示
这时我们将鼠标移到组件名称上,会看到完整的 API 表格提示。
组件 props 提示和模拟搜索(props)
我们尝试在组件名称后面输入一个空格,会提示组件的 props 列表。
边输入字符,可以边过滤 props,比如输入 c
,则只显示 center
/ closable
等 c
打头的属性。
还支持模糊搜索,即使忘记属性怎么拼写也没关系,依然会有提示,比如输入 detio
,也能提示出 description
属性。
值得一提的是,不仅支持 props 名称的过滤,还支持 props 描述的过滤,比如输入large
,可以提示出 title
属性,因此 title 属性的描述中有 large
关键词。
props值的提示
props 的提示列表,可以支持方向键选择组件 props,比如输入 size
出现了 size
/ title
两个属性,我选择 size
。
选中 props 之后,按 Enter 回车键会提示可选的 props 值,Alert 组件的 size 有两个可选值:normal
/ large
。
将鼠标移到属性名称上,也可以提示该属性的描述信息。
组件事件提示(events)
输入 @
符号,会提示组件的事件列表。
事件也支持事件描述内容的搜索。
组件实例方法的提示(methods)
除了组件 props / events 可以提示之外,common-intellisense 插件还支持组件实例方法的提示。
以Tree组件为例:
<script setup lang="ts"> import { ref } from 'vue' import { Tree as TinyTree, Button as TinyButton } from '@opentiny/vue' const treeData = ref([ { id: '1', label: '数据 1', children: [ { id: '1-1', label: '数据 1-1', children: [{ id: '1-1-1', label: '数据 1-1-1' }] }, { id: '1-2', label: '数据 1-2' } ] }, { id: '2', label: '数据 2', children: [ { id: '2-1', label: '数据 2-1' }, { id: '2-2', label: '数据 2-2' } ] }, { id: '3', label: '数据 3', children: [{ id: '3-1', label: '数据 3-1' }] } ]) // tree 组件实例 const treeRef = ref() // 在当前选中节点下插入子节点 const addChildNode = () => { const currentNodeId = treeRef.value.getCurrentNode().id const currentNode = treeRef.value.getNode(currentNodeId) treeRef.value.addNode(currentNode) } // 删除选中节点 const deleteNode = () => { const currentNodeId = treeRef.value.getCurrentNode().id treeRef.value.remove(currentNodeId) } </script> <template> <tiny-button @click="addChildNode" size="mini">插入子节点</tiny-button> <tiny-button @click="deleteNode" size="mini">删除节点</tiny-button> <tiny-tree :data="treeData" node-key="id" ref="treeRef" default-expand-all></tiny-tree> </template>
输入 treeRef.value.
时,会提示 Tree 组件暴露出来的方法列表。
也支持方法的过滤,比如输入 re
会过滤出 remove
方法。 效果如下:
组件插槽提示(slots)
在组件上方有一行小字,提示了当前组件有哪些插槽可以配置。
对于已经配置过的插槽,也会进行隐藏,比如 title 插槽已经配置过,就不再显示在提示中。
是不是非常丝滑,有了这个插件,几乎不用再去网站上查询组件用法,减少来回切换成本,让我们的开发工作更加聚焦、更加高效,心动不如行动起来!
欢迎朋友们体验和反馈:
- TinyVue
- common-intellisense
关于OpenTiny
OpenTiny 是一套企业级 Web 前端开发解决方案,提供跨端、跨框架、跨版本的 TinyVue 组件库,包含基于 Angular+TypeScript 的 TinyNG 组件库,拥有灵活扩展的低代码引擎 TinyEngine,具备主题配置系统TinyTheme / 中后台模板 TinyPro/ TinyCLI 命令行等丰富的效率提升工具,可帮助开发者高效开发 Web 应用。
欢迎加入 OpenTiny 开源社区。添加微信小助手:opentiny-official 一起参与交流前端技术~
OpenTiny 官网:https://opentiny.design/
OpenTiny 代码仓库:https://github.com/opentiny/
TinyVue 源码:https://github.com/opentiny/tiny-vue
TinyEngine 源码: https://github.com/opentiny/tiny-engine
欢迎进入代码仓库 Star🌟TinyEngine、TinyVue、TinyNG、TinyCLI~ 如果你也想要共建,可以进入代码仓库,找到 good first issue标签,一起参与开源贡献~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Web前端浅谈ArkTS组件开发
本文由JS老狗原创。 有幸参与本厂APP的鸿蒙化改造,学习了ArkTS以及IDE的相关知识,并有机会在ISSUE上与鸿蒙各路大佬交流,获益颇丰。 本篇文章将从一个Web前端的视角出发,浅谈ArkTS组件开发的基础问题,比如属性传递、插槽、条件渲染等。 创建项目 这个过程简单过一下,不赘述。 组件与页面 创建好项目后,我们会自动跳到初始首页,代码如下: @Entry @Component struct Index { @State message: string = 'Hello World'; build() { RelativeContainer() { Text(this.message) .id('HelloWorld') .fontSize(50) .fontWeight(FontWeight.Bold) .alignRules({ center: { anchor: '__container__', align: VerticalAlign.Center }, middle: { anchor: '__container__', align: HorizontalAlign....
- 下一篇
小文件写入性能 5 倍于 S3FS,JuiceFS 加速生信研究
在生物信息学研究领域,NextFlow 是一款主流数据分析工具,广泛应用于多种研究项目。MemVerge,内存融合基础架构厂商,其公有云计算平台产品 Memory Machine Cloud (MMCloud) 无缝集成了 NextFlow,为生物信息学家提供了自动化的高性能计算、checkpoint/restore 功能和云主机选型优化,使他们无需适应新的复杂基础设施管理环境。 执行 NextFlow Pipeline 的关键之一是共享存储,其面临的主要挑战包括:首先,需要处理具有 不同 I/O 需求的任务,这涉及到大文件和海量小文件的操作;其次,因为大多数任务脚本仅支持文件协议,所以对 POSIX 的兼容性是必需的;此外,在一个工作流中,任务的执行顺序依赖于它们之间的相互关系,使得任务的即时状态变得至关重要。 在详细评估了 NFS、S3FS、EFS 和 FusionFS 等多种存储解决方案之后,MemVerge 最终选择了 JuiceFS。JuiceFS 不仅确保了高性能的共享存储解决方案,特别是在处理大量小文件场景中表现出色,在我们的测试中平均每分钟写入小文件的数量是 S3FS的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址