Vue.jsクリエーターのEvanYouがWordPressJavaScriptフレームワークのディスカッションに参加

公開: 2017-06-06
写真提供者:JSConf China

先週、WordPressのコアコントリビューターは、新しいJavaScriptフレームワークの検討をReactとVueに絞り込みました。 コアチームはReactの操作に関するより集合的な知識を持っているため、WordPressコンテキストで他のフレームワークを使用したさまざまな経験を持つ開発者に連絡を取りました。

Vueに関して寄稿者が抱く主な懸念の1つは、プロジェクトの寿命です。 Vueの作成者であるEvanYouに、WordPressの寄稿者にプロジェクトの理解を深めるために、特にメンテナシップの負荷を分担するために追加のメンテナを育成する取り組みについて、このトピックについて検討してもらうことができるかどうか尋ねました。

「実績を確認することが重要だと思います。Vueは4年近く前から存在しており、すべての作業はGitHubで公開されているため、誰でもメンテナンス履歴を確認できます」とあなたは言います。 「それは主に私によって開発されましたが、現在のメンテナンスははるかにコミュニティ主導です。 私たちはアクティブなコアチームメンバーがほとんどの問題をトリアージし、コミュニティPRによって修正された問題の割合がますます大きくなっています。 ですから–はい、私はすでに追加のメンテナーの育成に取り組んでおり、今後もそうしていきます。」

あなたは現在、Vueでの彼のフルタイムの取り組みに資金を提供する定期的なPatreonの寄付から月額$ 10,000を受け取っています。 それ以前は、GoogleとMeteorでも働いていました。 Googleに在籍している間、あなたが取り組んだプロジェクトのいくつかはAngularを使用していましたが、当時のユースケースには重すぎることがわかったと彼は言いました。 彼はVue.jsを構築して、Angularについて気に入った概念をより軽量に実装しました。

また、最近、Reactコミュニティからかなりのことを学び、Vue2での技術的な決定に影響を与えたとおっしゃいました。

「まず、Vue 2は、Reactによって最初に開発されたものと同じ仮想DOMベースのレンダリングモデルを使用しています」とあなたは言いました。 「仮想DOMを導入することで、Vueは親しみやすさを維持しながらvdom構成の力を公開することができました。

「Reactコミュニティは、状態管理やCSS管理など、新しい問題ドメインが調査されている場合にも非常に活発です。 私がVueの公式ソリューションを実装していたとき、多くの競合するソリューションと多くのインスピレーションがありました。」

EvanYouがVue.jsに関するWordPressコアコントリビューターの誤解に対処

あなたは彼がReactvs Vueに関するWordPress寄稿者の議論をフォローしていると言いましたが、どちらがプロジェクトにとってより良い選択であるかについての意見を提供しないでしょう。

「私の答えは明らかに偏っています。正直なところ、私はWPコアチームの立場にないので、選択するのに十分な視点がありません」とあなたは言いました。 「しかし、私は彼らがより多くの情報に基づいた決定を下すのを助けることを期待して、議論されている問題のいくつかについてフィードバックを提供することができます。」

Vue.jsに関するいくつかの誤解について説明した、最新のJavascriptミーティングノートにコメントを残しました。 一部の寄稿者は、Vueのテンプレート言語が基盤となるJavaScriptを覆い隠していると考えているため、「JavaScriptを言語に採用する」という点について説明しました。

「 『JavaScriptを言語に取り入れること』は、Vueには見られないReactのもう1つのプリミティブだと思います」とAndrewDuthieは前回の会議で述べました。

あなたの回答は、Vueが「HTML上でのビュー表現のための構文糖衣構文」としてのテンプレートの使用を、JavaScript上でのビュー表現としてのJSXの場合の同様の使用法であると彼が信じているものと比較しています。

UIの充実度が増しても、すべてをJavaScriptに入れる必要はありません。 一方、Vueがデフォルトでテンプレートを使用しているからといって、JavaScriptを適切に学習しなくても問題を解決できるわけではありません。

Vueのテンプレートは内部でJavaScriptレンダリング関数にコンパイルされており、実際には従来の文字列テンプレートよりもJavaScriptに近いものです。 これは、基礎となる仮想DOM表現の上にある単なるシンタックスシュガーのレイヤーです。 JSXは、JS上でのビュー表現のシンタックスシュガーと考えてください。 Vueテンプレートは、HTML上にビューを表現するためのシンタックスシュガーです。

JSX / Raw JSは、仮想DOMノードの直接操作を適用する必要がある場合に、より柔軟性を提供します。これが、Vueがレンダリング機能もサポートしている理由です。 しかし、これは2つの相反するパラダイムを同じテントの下に置くことではありません。ユーザーが構文シュガーレイヤーをスキップして、より詳細に制御できるようにするだけです。

レンダリング機能の上にテンプレートを作成する背後にある考え方は、Vueを採用しているWordPressの他の多くの支持者が共有する懸念である「より良い親しみやすさ」を提供することであるとあなたは言いました。

「HTMLに慣れていて、ユースケースが単純なユーザーはテンプレートを使用できますが、JSX /レンダリング機能に既に精通しているユーザーはJSの全機能を活用できます」とあなたは言いました。 「これは、WPコアの使用に非常に適しています。親しみやすさを重視するコミュニティユーザーは、開始するのが簡単ですが、コアチームは、高度なユースケースのJSX /レンダリング機能にアクセスできます。」

また、Vueの開発プロセスに関する詳細情報を提供することで、長寿の懸念に対処しました。 彼は、現在のコードベースの大部分が彼だけで開発されていることを確認しましたが、メンテナンスは世界中のメンバーからなるコアチーム全体に分散しています。

「他のコントリビューターは、すべてPRの形式で送信され、GitHubの「スカッシュアンドコミット」機能を使用するため、コミット数が少なくなります。そのため、各PRは、コントリビューターに対して1つのコミットのみになります」とあなたは言いました。 「コアリポジトリだけで500近くのPRを統合し、組織全体でさらに多くのPRを統合しました。 vuejs組織の下にある他のリポジトリ、たとえばvuex、vue-router、vuejs.orgも、専任のチームメンバーによって大部分が維持されています。」

また、WordPressの寄稿者が、Vue 2.0のテンプレート言語の重大な変更に関する懸念を示したため、安定性と将来の互換性の問題についても説明しました。

「これはいくつかの説明を求めています。Vueのバージョン管理は厳密にsemverに従います」とあなたは言いました。 「1.0以降にAPIの変更があったのは、2.0のバンプだけでした。 テンプレート構文はAPIの一部であるため、[中断]することはありません。メジャーバージョンのバンプの合間には、100%のAPI下位互換性を約束します。 私たちは安定性を非常に重視しているので、GitLab、Vice、および中国で最大のインターネット企業のいくつかを含む、コミュニティおよび実稼働中のユーザーも同様です。」

多くのWordPressコアコントリビューターがReactの上で何年にもわたって開発してきたので、Youの入力は、コントリビューターがさまざまなフィードバックラウンドで求めてきたVueのより詳細で詳細な調査を提供します。 議論は今後数週間続き、寄稿者はWordCampEuropeの寄稿者サミットにこのトピックを含める予定です。