为什么有人说 Vue 不适合构建大型项目?

就非常不理解,网上大家这么说的依据是什么? 大型项目怎么定义的,多大算大,为什么Vue 就不能开发大型项目? 是社区不够活跃,还是性能出现了问题?
关注者
136
被浏览
369,096

46 个回答

说几个我的个人感受到的小细节,曾经的 vue 类型检查比较弱,导致 ts 无法较好与之配合,包括 script 和template都不太好被类型约束。曾经的 vue 比较依赖 options 的 API,其 this 可能存在不少隐式的依赖,不容易做代码跳转和静态分析,而且复用比较难(mixin)。

但是事情正在起变化。

vue 3 给我们带来了 composition api 和 ts 约束的 vue 源码,香港小哥 Johnson 给我们带来了 volar 插件 和 vue-tsc。现在 vue 3 的 ts 开发体验已经不弱于 angular 了,当然和 react 还是有些差距的。

其中 composition api 写逻辑代码,与 ts 配合极为顺畅;而 volar 做了非常好的模板类型检查,包括 props,emit,slot,directive(我站在 ts 爱好者的角度上谈的)。

而 composition api 的逻辑复用能力也使人震惊(感恩 react 团队天马行空的想象力)。我至今没有背下来 vue 的生命周期顺序,但是不妨碍我们构建出庞大的业务逻辑。

因为 vue 3 的贡献,社区的成员们把 vue 3 的工作都移植到了 vue 2 上,所以现在 vue 2 也有和 vue 3 几乎同等级的类型检查和逻辑复用能力。主要是 vue 官方的 @vue/composition-api , antfu 写的 unplugin-vue2-script-setup,还有 Johnson 给 volar 也做了对应的 vue 2 适配工作。

总结一下,我目前所关心的两个小领域,ts 静态类型检查和逻辑复用,vue 是完全适合构建大型项目的。

其他方面如果有不合适的,作为小萌新,我还不太懂。

\(//∇//)\

首先我们要理解什么叫做适合构建大型项目,网上说Vue不适合的论据我们查下搜索引擎,大概有这么几个

  • vue 很容易写成一个文件一个页面,形成庞大文件难以维护
  • react提倡的更细粒度的封装,带来的组件的复用性提高
  • 大型项目的庞大带来的是代码优化以及性能优化
  • 更高自由度的编写(几乎无api)可以为手动优化性能带来更大的便利性

…… 就这么几个不痛不痒的原因。说白了就是工程师团队限制不了队员往一个文件里堆屎山。React或者其他框架也可以所有逻辑都写一个文件里。

另外好像几乎没人写文章说Vue不适合大型项目,这个结论真的是三人成虎。 @某兔 的答案太正经了,发觉网上没什么人在乎类型检查(