Vue.js 2019年 締めくくり

Vue.js Advent Calendar 2019 #1 の25日目、最後の記事です。

今年2019年も去年と同じような感じであれですが、2019 年の Vue.js における状況、そして大きい出来事をまとめつつ、Vue.js アドベンドカレンダの最後を締めくくりたいと思います。

Vue.js の状況

今年も The State of Javascript から JavaScript 周りのアンケート調査の結果が出されました。

2019 年の Vue.js に対する満足度状況としては以下のような結果になっています。

画像2

Vue.js の満足度ですが、「使ったことがありまた使いたい」という結果は、2018 年は 20.8% だったのに対して、2019 年は 40.5 % という数値結果になっています。2019 年も前年 2018 年と同様に Vue.js に対する認知と利用ユーザーが伸びていることが分かると思います。

Vue.js 3.0 に向けた RFCs が公開された

2019年1月中旬に、Vue.js コアチームは RFC (Request for comments) を公開しました。

RFC を公開した目的としては、Vue.js に対する新機能や大幅な機能変更を入れるための一貫したプロセスを提供するためです。

これまで Vue.js 1.0、そして 2.0 のようなメジャーバージョンアップにおいては、新機能や破壊的変更を伴う機能変更のプロセスは基本的には以下のようなプロセスで対応していました。

・Evan 氏が新しく取り入れる新機能、落とす機能の骨格案を作る
・Vue.js コアチーム内でその骨格案をレビュー、ディスカッションをする
・Evan 氏と Vue.js コアチーム内でコンセンサスが取れたら、GitHub Issues に issue として公開して、コミュニティからフィードバックとコンセンサスを得る
・その後、Evan 氏が Vue.js を実装する

上記のプロセスは、流れとしては特に問題ないよう見えますが、このプロセスは明文化されてされていません。GitHub issues 上では、新機能導入、破壊的変更をする経緯、背景が分からないため、コミュニティに対して公平性のあるプロセスではありませんでした。また、GitHub stars 数 150,000 超えが示しているように、Vue.js は多くのコミュニティユーザーに利用されるようになり、API や構文などのインタフェースの変更は慎重になる必要がでてきました。

こうした経緯から RFC を導入しプロセスを明確化することで、誰でも新機能を RFC として提案をすることができるようになり、そしてその RFC に対してディスカッションできるようにしました。

現在も引き続き、RFC は随時受け付けているので、Vue.js に対してこういう新機能を追加したい!既存機能をこうすることで改善したい!等あれば、ぜひ RFC を提出してみてはいかがでしょうか。

Vue.js 2.6 Macross がリリースされた

2019年2月頭に、Vue.js 2.5 から約1年ぶりのマイナーバージョンアップデートされた、Vue.js 2.6 がリリースされました!

Vue.js 2.6 からは、早速先程紹介した RFC プロセスに則った形で、新機能や機能変更が対応されています。

新しい スロット構文 v-slot
v-slotの省略記法
動的なディレクティブ引数

Vue.js 2.6 からは新しいスタイルのスロット構文 v-slot がサポートされましたが、これまでサポートしてきた slot / scope-slot といったスロット構文も後方互換性がサポートされています。

Vue.js 3.0 以降では、Vue.js 2.6 以前のスロット構文はサポートされなくなります。Vue.js 3.0 のリリースは来年 2020 年 Q1 を予定しているので、今のうちに新しいスタイルのスロット構文に移行しておくとよいでしょう。

ちなみに、Vue.js 2.x 系の今後のリリースですが、Vue.js 3.0 にシームレスに移行できるようにするために、Vue.js 2.x に Vue.js 3.0 の機能が取り込まれて段階的にリリースされる予定となっています。基本的にメージャーバージョンアップグレードは、移行するのに大変な労力を伴うものですが、その労力を低減できるようにするために、段階的に Vue.js 2.x のマイナーバージョンをアップグレードしていくことで、シームレスに Vue.js 3.0 に移行できるように予定しています。

VuePress 1.0 がリリースされ開発がチーム体制になった

2019 年 6 月に VuePress 1.0 がリリースされました!

VuePress 1.0 のリリースは、VuePress の開発が Evan 氏から  ulivz 氏 にバトンタッチしてから、1 年越しのリリースになりました。

VuePress 1.0 のリリースと同時にチームを招集して、現在ではチーム体制で開発しています。

VuePress 1.0 ではプラグインアーキテクチャになり、markdown ファイルからビルドして、静的な HTML を生成する SSG (static site generator) から、プラグイン次第では、API からデータをフェッチ (fetch) してきてゴニョゴニョといった動的なサイトも作ることもできるようになっています。

プラグインベースのアーキテクチャとなった VuePress については、開発者の ulivz 氏が VueConf で発表した内容がブログ記事で書き起こされています。

VuePress に興味ある方は、このブログ記事の内容を見るとよいでしょう。

(ちなみに、ulivz 氏は、台風で中止になってしまった Vue Fes Japan 2019 で VuePress についてセッションで話してもらう予定でした。)

VuePress は Evan 氏からバトンタッチして以降、これまで ulivz 氏が一人で開発してきました。チーム体制で開発スピードはさらに進んでいくでしょう。

Vue.js 3.0 候補となる vue-next が公開された

2019年10月頭に、Vue.js 3.0 開発コードが vue-next として公開されました。

それに伴い、Vue.js 3.0 公開に向けたロードマップも更新されました。

画像1

vue-next として公開された Vue.js 3.0 のバージョンは pre-alpha 版です。今回の vue-next のコード公開はみなさんにとっては待ちにまったコードの公開だったと思います。

Vue.js 本体は TypeScript で書かれており、Vue.js 2.0 で提供されていた、テンプレートのコンパイラ、リアクティブシステム、そして仮想 DOM やレンダラといったレンダリングシステムも、ゼロからフルスクラッチで実装されています。

コードが公開されてから、2020 年 Q1 の予定に向けて現在も絶賛開発中です。Vue.js 3.0 の開発はコアな部分の実装は Evan 氏によって実装され、コミュニティとともに開発は続けれられています。

Vue.js 3.0 の SSR など他の機能はまだまだ実装途中の段階で vue-next を使って全ての機能を体験できません。ただ、新しい API であるコンポジション API (Composition API) は、以下の Vue.js 公式で提供している vuejs/composition-api というプラグインを使うことで、Vue.js 2.x 系のバージョンでも使用感を試すことができます。

コンポジション API は、Vue.js を使った大規模開発で問題となっていた部分が解消されるため、Vue.js をヘビーに使っているコミュニティユーザーにとっては待ち切れない API だと思います。

提案元の RFC の issue は閉じてしまいましたが、まだこちらでフィードバックを送ることができるので、ぜひ一度使ってみて気になること、もっとこうして欲しいなど、何かフィードバックを送りたいと思っている方は、ぜひ送ってみてはいかがでしょうか。

そして、vue-next は現在も絶賛開発中なので、Vue.js のメジャーバージョンに向けたのVue.js のコントリビューションに関わることは中々できない経験です。興味がある方はぜひチャレンジしてみてはいかがでしょうか。

Vue CLI 4 がリリースされた

vue-next の公開されたちょっと後の10月中旬に、Vue CLI のメジャーバージョンである v4 がリリースされました! 

Vue CLI 4 のリリース内容としては、使う側の視点ではこれといった目玉な機能のリリースはありませんが、TypeScript、Jest といったツールのバージョンがアップグレードされていて地味な改善が入っています。Vue CLI プラグイン作成者向けには、vue upgrade でマイグレーションするための仕組みが入りました。これまでより便利になっています。

TypeScript、Jest といったWebフロントエンドの開発に必要なツール郡のアップグレードは、従来でしたら自分で調べて手で対応しないといけないのですが、Vue CLI を使っている場合は、vue upgrade で済んでしまいます。Vue CLI を使っていることで、開発環境の構築だけでなく、アップグレードの手間から開放されます。今回のメジャーバージョンリリースは、まさにそういった恩恵を受けることができるでしょう。

2019年も各国でカンファレンスが開催された

去年 2018 年も振り返りましたが、2019 年も以下のように各国でカンファレンスが開催されました。

Vue Amsterdam 2019
(注意: 以下リンクはもう2020に向けたサイトになっています。)

VueConf US
(注意: 以下リンクはもう2020に向けたサイトになっています。)

VueConf Shanghi

Vue.js London 2019
(注意: 以下リンクはもう2020に向けたサイトになっています。)

VueConf Tronto 2019

そして最後に、台風で中止になってしまいましたが、Vue Fes Japan 2019。

ここまで紹介してきて、気がついたと思いますが、今年開催されたカンファレンス、もう既に来年に向けて動きはじめていますね!

おわり

これまでの Vue.js についての状況と大きな出来事を振り返ってみました。

今年 2019 年は Vue.js 3.0 のリリースはありませんでしたが、Vue.js 2.6 のリリース、RFC の公開、そして vue-next の公開など、Vue.js 3.0 につながるような出来事があったかと思います。

 vue-next の公開により、来年 2020 年に Vue.js 3.0 のリリースに向けて着々と開発進んでいます。

2019 年 Vue.js のカンファレンスが開催され、既に来年 2020 年の開催に向けて動いているところもあります。

自分が実行委員長的に主導していたカンファレンス Vue Fes Japan 2019 は、残念ながら中止になってしまいましたが、来年 2020 年に向けて 「Vue Fes Japan 2020」として動きだしました。
(かなり準備に時間を割いてきたいので中止は本当に悔しいです!)

日本の Vue.js コミュニティにおいても、Vue.js 3.0 のコンポジションAPI を使ったブログ記事や、ミートアップの勉強会で発表が多々見られ、Vue.js 3.0 に対する期待が向けられています。

来年 2020 年こそ、Vue.js 3.0 元年の年になりますので、来年もぜひ Vue.js をどうかよろしくお願いします!

メリークリスマス!


この記事が気に入ったらサポートをしてみませんか?