当前位置:首页 > 网站源码 > 正文内容

对vue了解多少(vue学到什么程度可以做项目?)

网站源码5个月前 (06-20)180

来自公众号: 前端充电宝

来自公众号: 前端充电宝

2023 年 2 月 8 日,Volar 作者 Johnson Chu 在 Vue.js 官方博客发文展望了 Volar 的 2023 年,下面就来看看详细内容吧!

2023 年 2 月 8 日,Volar 作者 Johnson Chu 在 Vue.js 官方博客发文展望了 Volar 的 2023 年,下面就来看看详细内容吧!

Volar 是 Vue.js 官方的 VSCode 扩展。当官方推荐 Vetur 时,Volar 还是一个个人项目,随着时间的推移,由于改进的性能和体系结构而被采纳为新的官方扩展。作为一个旨在改善开发体验的项目,用了两年多的时间才达到了 1.0 版本 ,并且一直在不断改进稳定性。但还有许多工作要做,2023 年有更令人兴奋的计划!

Volar.js:嵌入式语言工具框架

尽管最初是为 Vue 单文件组件的特定需求而设计的,但 Volar 的代码库包含许多不特定于 Vue 的部分,例如:

嵌入式编程语言的处理;

Vue 语言服务器实际上是一个成熟的 Type 语言服务器;

处理与 LSP / Web / 嵌入式语言服务等交互的代码。

嵌入式编程语言的处理;

Vue 语言服务器实际上是一个成熟的 Type 语言服务器;

处理与 LSP / Web / 嵌入式语言服务等交互的代码。

注:语言服务器并不是一个真的服务器,而是把语言相关的特性和功能从 IDE 中解耦出来,作为一个独立的程序单独运行,提供了例如引用查询等功能的具体实现。

注:语言服务器并不是一个真的服务器,而是把语言相关的特性和功能从 IDE 中解耦出来,作为一个独立的程序单独运行,提供了例如引用查询等功能的具体实现。

现在已经将这些通用部分提取到一组与框架无关的工具中。这些工具现在作为一个新的独立项目进行维护: Volar.js[1] 。

Volar.js 的架构支持任何涉及嵌入式语言的文件格式——不仅是 Vue,还包括 Astro、Svelte,甚至 Angular。它还能够实现常规的单语言 LSP servers,例如 Type、CSS 和 HTML。

Volar.js 的另一个主要关注点是 性能。它旨在最大限度地减少实现原生嵌入式语言服务性能的开销。有很多问题和优化机会,只有在拥有大量用户的情况下才能发现,而 Volar.js 是根据从数百万次下载中积累的经验进行优化的。

展开全文

例如,字节跳动的 Lynx 团队是 Volar.js 的早期采用者,一个开发人员用两周的时间交付了一整套支持其内部框架的语言工具。如果它是从头开始构建的,即使是一个团队也需要几个月的时间。

旧的 Volar 现在是 vuejs/language-tools

提取核心后,原始 Volar 扩展和 vue-tsc 的代码库已移至 vuejs/language-tools[2] 存储库。这个存储库现在依赖于 Volar.js 并包含对 Vue 特定支持的代码。

除此之外,还将把一些 npm 包从 @volar的 npm 组织转移到 @vue。不过,这些变化不应该影响用户。

团队与组织

Vite[3] 从 Vue 生态系统中脱颖而出,并最终成长为自己的社区,连接整个 Web 开发生态系统的用户,Volar.js 也希望走同样的路。

Volar 作者 Johnson Chu 与 Astro 核心团队成员 Erika 建立了 Volar.js 核心团队,致力于改善开发者体验。团队将共同努力,为所有 Web 开发者改进 DX,而不仅仅是 Vue 和 Astro。

他们创建了 volarjs 组织来维护框架和相关的存储库:

volar.js:框架的核心

plugins[4] : 可以在 volar.config.js 或框架的 plugins 中使用

volarjs.github.io[5] :官方网站

language-tools-starter[6] :开始使用 Volar.js 构建语言服务器模板

ecosystem-ci[7] :用于运行 volar 生态系统项目的集成测试

pug-language-tools[8] :基于 language-tools-starter 的 Pug 工具

angular-language-tools[9] :基于 language-tools-starter 的 Angular 示例

对vue了解多少(vue学到什么程度可以做项目?)

svelte-language-tools[10] :基于 language-tools-starter 的 Svelte 示例

volar.js:框架的核心

plugins[4] : 可以在 volar.config.js 或框架的 plugins 中使用

volarjs.github.io[5] :官方网站

language-tools-starter[6] :开始使用 Volar.js 构建语言服务器模板

ecosystem-ci[7] :用于运行 volar 生态系统项目的集成测试

pug-language-tools[8] :基于 language-tools-starter 的 Pug 工具

angular-language-tools[9] :基于 language-tools-starter 的 Angular 示例

svelte-language-tools[10] :基于 language-tools-starter 的 Svelte 示例

这只是一个开始,目前还没有明确的长期路线图,但这里有一些计划在接下来探索和努力的主要方向。

Monaco 支持

Monaco 对 Vue 的支持目前由 monaco-volar 实现,Volar 团队计划在框架中支持它,因此所有基于 Volar.js 的语言服务器都可以轻松使用它。

支持 VSCode 以外的 IDE

除了 VSCode 之外,许多贡献者还为 Volar 的 Vim、Sublime、Atom、Emacs、Nova、Lapce 等其他 IDE 实现了语言客户端。拥有一整套的 IDE 支持可能有很大的参考价值,因为很少有人能够精通所有这些 IDE。

Volar 团队将寻找方法来利用这些贡献者的努力,以减少框架使用者在 VSCode 之外实现语言客户端的工作量。

除此之外,虽然 IntelliJ 没有一流的 LSP 支持,Volar 团队将研究是否可以将其与框架集成。

基于 Bun 的语言服务器

理论上,Volar 的性能只能无限接近,但不会快于 vanilla TS 语言服务器。但是,如果 Volar 语言服务器可以通过在 Bun 中运行而获得性能提升,它可能会改变游戏规则。

以前 Bun 运行时还不兼容基于 Node.js 的 LSP 服务器。Volar 团队会持续关注相关问题,待问题解决后进行重试。同样,所有基于 Volar.js 的语言服务器都将能够直接从中受益。

单体服务器

想象一个场景,每种语言都需要支持一些 Type 特性,那么每种语言的语言服务器都会运行自己昂贵的 Type 语言服务实例,这让情况变得变得糟糕,因为内存和 CPU 使用率都会成倍增加,而这种情况如今已经发生了。

如果这些语言服务器中的一些是基于 Volar.js 的,可能有一些方法让他们决定只激活一个语言服务器,然后将其余语言服务器的功能共享给激活的服务器,这样最终只需要在一个语言服务器实例而不是多个语言服务器中运行 Type 语言服务。

这也可以解决 Type 插件无法支持的一些用例。

基于 Volar.js 架构,已经非常接近这个目标,Volar 团队将为 Vue 和 Astro 语言服务器探索这个特性。

Rules API(内置 Linter)

在 ESLint 和 Prettier 一起使用时可能会出现冲突,而过去基于 Plugin API 的尝试并没有很好地避免这个问题。

Rules API 是避免不同 linting 工具之间冲突的另一种尝试,同时也确保性能和特性与 IDE 完美集成。

对于元框架,它们需要为 ESLint 和 Prettier 实现自己的解析器,但是有了 Rules API,它们甚至不需要这样做,因为可以重用 Volar 语言服务器的解析器。

因此,如果编写了一个 TS 规则,它将直接通过 Rules API 用于 Vue 的 <>和模板中的 Type 代码,而不需要额外的解析器。

这并不意味着需要重写所有规则;Rules API 只是一个 API,而不是一个单独的 linter,因此仍然可以重用 ESLint、TSLint 甚至 Rome 中的一些规则。

s API

对于 Vue,有 Vue-tsc 来检查TS代码,Volar 团队也想在 CI 中同时检查 CSS 和 Vue Template 代码。

s API 旨在公开语言服务器的格式化和 linting 功能,以便它们可以在脚本中使用,允许开发者在 CI 或 git 预提交 Hooks 中使用它并获得与在 IDE 中相同的结果。

原文: https://blog.vuejs.org/posts/volar-a-new-beginning.html

原文: https://blog.vuejs.org/posts/volar-a-new-beginning.html

[1]

Volar.js: https://volarjs.github.io/

[2]

vuejs/language-tools: https://github.com/vuejs/language-tools

[3]

Vite: https://vitejs.dev/

[4]

plugins: https://github.com/volarjs/plugins

[5]

volarjs.github.io: https://volarjs.github.io/

[6]

language-tools-starter: https://github.com/volarjs/language-tools-starter

[7]

ecosystem-ci: https://github.com/volarjs/ecosystem-ci

[8]

pug-language-tools: https://github.com/volarjs/pug-language-tools

[9]

angular-language-tools: https://github.com/volarjs/angular-language-tools

[10]

svelte-language-tools: https://github.com/volarjs/svelte-language-tools

---END---

推荐↓↓↓

扫描二维码推送至手机访问。

版权声明:本文由我的模板布,如需转载请注明出处。


本文链接:http://60200875.com/post/67277.html

分享给朋友:

“对vue了解多少(vue学到什么程度可以做项目?)” 的相关文章

什么是视频URL地址(视频url地址大全)

什么是视频URL地址(视频url地址大全)

本篇文章给大家谈谈什么是视频URL地址,以及视频url地址大全对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、“URL地址”是什么意思? 2、怎么获得视频URL地址?...

货币交易所APP下载(货币交易所app下载官网)

货币交易所APP下载(货币交易所app下载官网)

今天给各位分享货币交易所APP下载的知识,其中也会对货币交易所app下载官网进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、okex交易所app打不开 2...

溯源码进口燕窝价位(溯源码燕窝产地)

溯源码进口燕窝价位(溯源码燕窝产地)

今天给各位分享溯源码进口燕窝价位的知识,其中也会对溯源码燕窝产地进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、燕窝一盒一般多少钱 2、正宗的燕窝一克多少...

进口食品溯源码多少位(国家规定进口商品溯源码)

进口食品溯源码多少位(国家规定进口商品溯源码)

今天给各位分享进口食品溯源码多少位的知识,其中也会对国家规定进口商品溯源码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、十四位燕窝码是什么意思 2、“食...

抖音直播伴侣黄边框取消(抖音直播伴侣黄边框取消笔记本)

抖音直播伴侣黄边框取消(抖音直播伴侣黄边框取消笔记本)

今天给各位分享抖音直播伴侣黄边框取消的知识,其中也会对抖音直播伴侣黄边框取消笔记本进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、斗鱼直播伴侣黄框怎么去除...

eclipsedebug查看值(eclipse debug查看值)

eclipsedebug查看值(eclipse debug查看值)

本篇文章给大家谈谈eclipsedebug查看值,以及eclipse debug查看值对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、eclipse在debug模式下如何查...