Closed6

海外の React ユーザーが Vue を使わない理由メモ

shingo.sasakishingo.sasaki

このツイートに対する反応をざっくり読んでメモしてくスクラップ
https://twitter.com/antfu7/status/1567511783832961026

国内の声だとなんとかく Vue は独自性が強くてツールチェインしづらい、TypeScript 弱い、SFC が扱いづらい、JSX を使いたいあたりの理由が出るけど英語圏だとどうなんだろというモチベーションから。

shingo.sasakishingo.sasaki

エコシステムの成熟具合

  • nextjs は nuxtjs の先を行ってる
  • tRPC や データフェッチのライブラリが充実している
  • Vue は Vue 3 のエコシステムが遅れている

UIフレームワークとしては Vue が上回っているけど、エコシステムの成熟具合の違いから React を選ぶことになるという声も。

https://twitter.com/donutspree/status/1567523725091786759
https://twitter.com/EddyVinckk/status/1567516447336710144
https://twitter.com/NikhilVerma/status/1567533179652952065
https://twitter.com/songkeys/status/1567537487278637058
https://twitter.com/JoshWComeau/status/1567559618062082048
https://twitter.com/seanghay_yath/status/1567561042703822849
https://twitter.com/matijao_/status/1567544004819951622

TypeScript サポートの不足

  • Volar によるサポートは強力ではあるが不十分
  • Vue 3 ではサポートが強化されたが、Vue 2 時代に TS サポートを理由に React に移ってそれっきりという声も

https://twitter.com/ragragg_/status/1567537229043572737
https://twitter.com/sanxiaozhizi/status/1567529738230702083
https://twitter.com/Danny_H_W/status/1567519916156133376
https://twitter.com/NoWizardry/status/1567551925138395136

React は Vanila JS に近く、Vue は DSL が強い

  • JSX は純粋なシンタックス(糖衣構文)に過ぎず、コンポーネントを第一級オブジェクトとして扱えるから
  • Vue はテンプレートが DSL であり、 .vue ファイルが扱いづらい

https://twitter.com/ryanflorence/status/1567701540366073857
https://twitter.com/viniciusflv1/status/1567514645950349313
https://twitter.com/hardfist_1/status/1567552547220779008
https://twitter.com/douglasjunior__/status/1567529090520842240
https://twitter.com/jody_lecompte/status/1567535087654150148
https://twitter.com/mzaien_/status/1567533304231993345
https://twitter.com/jon_dewitt_ts/status/1567539033315614721
https://twitter.com/TunkShif/status/1567566536679854081
https://twitter.com/mfbyrktr/status/1567696832146317312

もちろん Vue でも render 関数を用いて JSX を使用することはできるし、SFC を使わずにコンポーネントを作成することもできるが Vue におけるベストプラクティスとは言い難い。

Vue はマイグレーションが困難になりがち

https://twitter.com/bygeekdaniels/status/1567650480708362240

React Native の存在

https://twitter.com/lazminutes/status/1567512919071674370
https://twitter.com/a7medev/status/1567512972901203971
https://twitter.com/JofArnold/status/1567585671098863618
https://twitter.com/mabdullahsari/status/1567587383549231106
https://twitter.com/alexdotjs/status/1567631961417449475

好みでなくシェア率の問題

https://twitter.com/Moose_Said/status/1567521537242038272
https://twitter.com/Adib_Hanna/status/1567514505139159042
https://twitter.com/darkjeda/status/1567527051770593280
https://twitter.com/kandros5591/status/1567518662533292032
https://twitter.com/_teo_garcia/status/1567530331254685698
https://twitter.com/ebns1na/status/1567536884003540992

日本国内においては Vue のシェア率が世界的に見ても高めだから困らないのかも

shingo.sasakishingo.sasaki

思ったことのメモを雑に書いておく

  • React を使う理由の多くは、Vue 3 でも満たせるようになったけど、Vue 2 自体の印象や移行コストから採用されないってケースが多そう
  • 第一級オブジェクトであることの重要性はやっぱり高いみたい。コンポーネントを第一級オブジェクトだからこそTSサポートもしやすく、エコシステムが成熟しやすいのかな
  • シェア率、既存プロジェクトの数、会社の方針からっていう単純な回答が思ったより多い
  • Composition API を評価する声はそこそこある。やっぱり React 層にも刺さってはいるのか
  • 双方向バインディングに関する声が少なからずあるけど、あれは糖衣構文で同じことは React でも出来るから・・。
  • React Hooks がクロージャーであることを理解すればその実態はシンプルだって話もあったけど、自分はそこの理解が甘いからまだ難しく感じてるのかも
shingo.sasakishingo.sasaki

ひと通り見た。
もう少し整理して、自分の意見もまとめたら記事化しようかな。

このスクラップは2022/09/11にクローズされました