私は長い間 Vue の大ファンです。初めて使い始めたとき、特に私が取り組んでいた React プロジェクトと比較すると、そのシンプルさは新鮮な息吹だったことを覚えています。 Vue 2 には明確な哲学があるように感じられました。それは、親しみやすく、率直であり、開発者がフレームワーク自体ではなくアプリケーションに集中できるようにすることです。
しかし、最近は Vue 3 を使用する時間が増えています。正直なところ?少し混乱しています。非常に見慣れた、しかし良い意味ではないパターンがいくつか見え始めています。 Vue 3 が見え始めているような気がします...ゆっくりと React に似たものに変化していきます。
ここで、私は Vue 3 を非難するつもりはありません。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 では状況が変わり始めました。 Comboposition API の導入は強力ですが、まったく異なるメンタル モデルをテーブルにもたらします。それは...抽象的な感じがします。突然、単純なタスクにさらに多くのコードが必要になるようになりました。どちらの API でも同じことを実行できますが、状況によっては、複雑さが不必要に感じられることがあります。
これは、Composition API を使用した、Vue 3 の同じコンポーネントの例です。
<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 を導入していますが、これは素晴らしいことですが、別の選択をする必要があります。 「React のような」複雑さのように感じられ始めます。物事を行う方法は 1 つではなく、開発者はコーディングする前に多くの決定を下す必要があります。
Vue 3 プロジェクトの中には、基礎だけを必要とする複雑なセットアップや抽象化レイヤーがあり、ディープエンドから完全に逸脱しているように見えるプロジェクトもいくつか見始めています。これは、10 個のライブラリで Hello World が完成する React の方法に似ています。
成長するエコシステムと選択肢
Vue エコシステムの成長に気付かずにはいられません。新しいツールやライブラリが常に登場しているようで、刺激的であると同時に圧倒されます。
私たち React 開発者の多くが抱く感情、「オプション麻痺」について考えさせられます。そして、私は Vue 3 でそれを感じ始めています:
Pinia と Vuex を使用するべきですか?
どのテスト ユーティリティ セットを使用する必要がありますか?
すべてを最初から作成するべきでしょうか、それとも大きなコンポーネント ライブラリを採用すべきでしょうか?
これは、Vue に移行したときに置き忘れたと思っていたものです...
私は気が狂っているのでしょうか?
わかってる、わかってる。もしかしたら私は何かを見逃しているだけかもしれません。おそらく、これらの変更はすべて Vue が成長して適応するために必要なものです。おそらくそれは私と私の好みだけかもしれません。
しかし、Vue の核心的な魅力、つまりそのシンプルさ、明確さ、「そのまま動作する」性質が少し侵食されているという感覚を払拭することはできません。私たちがゆっくりと、しかし確実に React に似た外観と操作性を備えた Vue エコシステムを構築しているのではないかと心配しています。 Vue 独自のアイデンティティが失われつつあるように感じ始めています。
それで、どう思いますか?これは私だけでしょうか?同じ傾向が見られますか?ぜひあなたの見解を聞きたいです。たぶん、私は間違っていると説得してくれる誰かが必要なだけかもしれません。あるいは、私たち全員が同じことを少しずつ感じているのかもしれません。
コメントで議論しましょう!
以上がVue lowly が React に変わりますか? (正直、混乱しています。)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。