常见问题解答
谁维护Vue?
Vue是一个独立、社区驱动的项目。它由Evan You于2014年作为个人副项目创建。今天,Vue由来自世界各地的全职和志愿者组成的团队积极维护,其中Evan担任项目负责人。您可以在这个纪录片中了解更多关于Vue的故事。
Vue的开发主要通过赞助来资助,我们自2016年以来一直财务可持续。如果您或您的业务从Vue中受益,请考虑赞助我们以支持Vue的开发!
Vue 2 和 Vue 3 之间有什么区别?
Vue 3 是当前最新的主要版本。它包含一些Vue 2中没有的新特性,如Teleport、Suspense以及每个模板可以有多个根元素。它也包含了一些破坏性更改,使其与Vue 2不兼容。详细的迁移信息请参考Vue 3 迁移指南。
尽管存在差异,两个主要版本之间的大多数Vue API都是共享的,所以你大部分的Vue 2知识在Vue 3中仍然适用。值得注意的是,Composition API最初是Vue 3独有特性,但现在已回滚到Vue 2,并在Vue 2.7中可用。
总的来说,Vue 3 提供了更小的包体积、更好的性能、更好的可伸缩性和更好的TypeScript/IDE支持。如果你今天开始一个新项目,Vue 3 是推荐的选择。目前只有少数原因让你考虑使用Vue 2。
- 你需要支持IE11。Vue 3 利用现代JavaScript特性,不支持IE11。
如果你打算将现有的Vue 2应用程序迁移到Vue 3,请查阅迁移指南。
Vue 2 还支持吗?
2022年7月发布的Vue 2.7是该版本系列的最后一个次要版本。Vue 2 现已进入维护模式:它将不再发布新功能,但从2.7版本发布日期开始,将继续接收关键错误修复和安全更新,为期18个月。这意味着Vue 2 将于2023年12月31日达到生命周期终点。
我们认为这应该为大多数生态系统迁移到Vue 3 提供足够的时间。然而,我们也理解,可能存在一些团队或项目无法在2023年12月31日之前升级,但仍需满足安全和合规要求。我们正在与行业专家合作,为有此类需求的团队提供Vue 2的扩展支持——如果你的团队预计将在2023年底之后继续使用Vue 2,请提前规划并了解更多关于Vue 2 扩展LTS的信息。
Vue 使用什么许可证?
Vue 是一个免费的开源项目,根据MIT许可证发布。
Vue 支持哪些浏览器?
Vue最新版本(3.x)仅支持具有原生ES2015支持的浏览器。这排除了IE11。Vue 3.x使用ES2015特性,无法在旧浏览器中polyfill,因此如果你需要支持旧浏览器,你需要使用Vue 2.x。
Vue 是否可靠?
Vue 是一个成熟且经过实战考验的框架。它是目前最广泛使用的JavaScript框架之一,全球有超过150万用户,每月在npm上下载量接近1000万次。
Vue已被全球各地的知名组织在生产环境中使用,包括维基媒体基金会、NASA、苹果、谷歌、微软、GitLab、Zoom、腾讯、微博、哔哩哔哩、快手等。
Vue是否快速?
Vue 3是性能最优秀的主流前端框架之一,能够轻松处理大多数Web应用用例,无需手动优化。
在压力测试场景中,Vue在js-framework-benchmark中比React和Angular表现出色。它还与其他一些最快的生产级非虚拟DOM框架并驾齐驱。
请注意,上述合成基准测试专注于原始渲染性能,并具有专门的优化,可能无法完全代表实际性能结果。如果您更关心页面加载性能,欢迎使用WebPageTest或PageSpeed Insights审计此网站。该网站由Vue驱动,具有SSG预渲染、全页水合和SPA客户端导航。在模拟的Moto G4上,在慢速4G网络上4倍CPU节流的情况下,性能得分为100分。
您可以在渲染机制部分了解更多关于Vue如何自动优化运行时性能的信息,以及在性能优化指南中了解如何在特别要求高的案例中优化Vue应用程序。
Vue是否轻量级?
当您使用构建工具时,许多Vue的API都是“可摇树”的”。例如,如果您不使用内置的<Transition>
组件,它将不会包含在最终的生产包中。
仅使用绝对最小API的hello world Vue应用程序的基线大小仅为约16kb,包含最小化和brotli压缩。应用程序的实际大小将取决于您从框架中使用的可选功能数量。在不太可能的情况下,如果应用程序使用了Vue提供的所有功能,总运行时大小约为27kb。
当在没有构建工具的情况下使用Vue时,我们不仅失去了摇树功能,还必须将模板编译器发送到浏览器。这使大小增加到约41kb。因此,如果您主要使用Vue进行渐进式增强而没有构建步骤,请考虑使用petite-vue(仅6kb)。
一些框架,如Svelte,使用一种编译策略,在单个组件场景中产生极轻量级的输出。然而,我们的研究表明,大小差异很大程度上取决于应用程序中的组件数量。虽然Vue的基线大小较重,但它每个组件生成的代码较少。在实际场景中,Vue应用程序可能非常轻量。
Vue是否可扩展?
是的。尽管有误解认为Vue仅适用于简单用例,但Vue完全能够处理大型应用程序。
单文件组件提供了一种模块化开发模型,允许应用程序的不同部分独立开发。
组合式API提供了第一类TypeScript集成,并允许组织、提取和重用复杂逻辑的清晰模式。
全面的工具支持确保随着应用程序的增长,开发体验依然流畅。
较低的入门门槛和优秀的文档意味着新开发者的入职和培训成本较低。
我如何为Vue贡献?
感谢您的关注!请查看我们的社区指南。
我应该使用Options API还是Composition API?
如果您是Vue的新手,我们在这里提供了一个两种风格的概要比较这里。
如果您之前使用过Options API,现在正在评估Composition API,请查看这个常见问题解答。
我应该与Vue一起使用JavaScript还是TypeScript?
尽管Vue本身是用TypeScript实现的,并且提供了第一级的TypeScript支持,但它并不强制要求用户使用TypeScript。
当Vue添加新功能时,TypeScript支持是一个重要的考虑因素。设计时考虑到TypeScript的API通常更容易被IDE和linters理解,即使您自己不使用TypeScript也是如此。所有人都受益。Vue API也被设计成尽可能在JavaScript和TypeScript中都以相同的方式工作。
采用TypeScript需要在入职复杂性和长期维护性收益之间做出权衡。这种权衡是否合理可能因团队背景和项目规模而异,但Vue并不是影响这个决定的因素。
Vue与Web Components有何比较?
Vue是在Web Components原生可用之前创建的,Vue的一些设计(例如插槽)受到了Web Components模型的影响。
Web Components规范相对较低级,因为它们围绕定义自定义元素。作为一个框架,Vue解决了额外的更高级问题,如高效的DOM渲染、响应式状态管理、工具、客户端路由和服务器端渲染。
Vue还完全支持消费或导出原生自定义元素 - 有关更多详细信息,请查看Vue和Web Components指南。