我长期以来一直是 Vue 的忠实粉丝。我记得当我第一次开始使用它时,它的简单性就像一股新鲜空气,特别是与我一直在努力解决的 React 项目相比。 Vue 2 感觉它有一个明确的理念:平易近人、简单明了,让开发人员专注于应用程序,而不是框架本身。
但是最近,我在 Vue 3 上花费了更多时间,说实话?我有点困惑。我开始看到一些非常熟悉的模式,但感觉不太熟悉。就像我开始看到 Vue 3...慢慢演变成类似 React 的东西。
现在,我并不是要抨击 Vue 3。它有很多很棒的功能,而且组合 API 也很强大。但我无法摆脱这种感觉,我们正在失去一些最初使 Vue 如此独特的核心原则。
“Vue Way”:我们所爱的
让我们面对现实吧。 Vue(尤其是 Vue 2)的一大吸引力在于它的易用性。您拥有简单明了的选项 API。使用模板是一种乐趣;简单直观。您可以快速启动 Vue 应用程序,而无需费力地进行复杂的配置。生态系统感觉易于管理;你有一个可靠的路由器(vue-router)和一个状态管理模式(vuex),就是这样!使用 Vue 可以非常高效。
这是 Vue 2 组件的一个简单示例:
<template> <div> <p>{{ message }}</p> <button @click="reverseMessage">Reverse</button> </div> </template> <script> export default { data() { return { message: "Hello Vue 2!", }; }, methods: { reverseMessage() { this.message = this.message.split("").reverse().join(""); }, }, }; </script>
简单。直接的。易于理解。这是 Vue 的承诺。
转变:当事情开始感觉……不同时
但是随着 Vue 3 的出现,事情开始发生变化。 Composition API 的引入虽然功能强大,但带来了一种完全不同的思维模型。感觉……抽象。突然之间,简单的任务现在需要更多的代码。您可以在这两个 API 中执行相同的操作,但在某些情况下,复杂性感觉没有必要。
这是 Vue 3 中相同组件的示例,使用 Composition API:
<template> <div> <p>{{ message }}</p> <button @click="reverseMessage">Reverse</button> </div> </template> <script setup> import { ref } from 'vue'; const message = ref("Hello Vue 3!") function reverseMessage() { message.value = message.value.split("").reverse().join(""); } </script>
它的作用是一样的,但是...不觉得需要更多工作吗?看看即使是一个简单的消息变量现在也需要一个引用并且需要一个值来访问其内容!对于以前简单的事情来说,这有点太多了。
而且这不仅仅是组合 API。状态管理空间也变得更加复杂。我们现在有了 Pinia,这很棒,但现在我们要做出另一个选择。它开始感觉像“类似反应”的复杂性,没有单一的做事方式,开发人员必须在编码之前做出许多决定。
我也开始看到一些 Vue 3 项目,感觉它们已经完全脱离了深渊,对于可能只需要基础知识的项目来说,具有复杂的设置和抽象层。这就像 React 方式,您将看到一个由 10 个库完成的 hello world。
不断发展的生态系统和选择
我不禁注意到 Vue 生态系统的成长。新的工具和库似乎不断涌现,这既令人兴奋又令人不知所措。
这让我想起了我们很多 React 开发者都有的一种感觉:“选项瘫痪”。我开始通过 Vue 3 感受到这一点:
我应该使用 Pinia 还是 Vuex?
我应该使用哪组测试实用程序?
我应该从头开始创建所有内容还是采用大型组件库?
这是我搬到 Vue 后认为自己留下的东西......
我疯了吗?
我知道,我知道。也许我只是错过了一些东西。也许这些改变都是 Vue 成长和适应所必需的。也许这只是我和我的喜好。
但我无法摆脱这种感觉,即 Vue 的核心吸引力——它的简单、它的清晰、它的“正常工作”本质——正在被一点点侵蚀。我担心我们正在缓慢但坚定地构建一个看起来和感觉都更像 React 的 Vue 生态系统。我们开始感觉我们正在失去 Vue 的独特身份。
那么,你觉得怎么样?我是一个人吗?您看到同样的趋势吗?我很想听听你的观点。也许我只是需要有人来说服我,我错了,或者也许我们都有同样的感觉。
评论区一起讨论吧!
以上是Vue low 变成 React? (老实说我很困惑。)的详细内容。更多信息请关注PHP中文网其他相关文章!