169
168

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vue.jsで手軽じゃないアプリケーション構築

Last updated at Posted at 2015-03-16

概要

Vue.jsは、MVVMというMVCの派生種を設計基盤として構築されたクライアントサイドJSフレームワークです。AngularJSと表面上は似ていますが、設計思想は全く異なるもので、作成したUIコンポーネントを組合せてページを構成することを前提にしています。

「Vue.jsで遊んでみた」のような記事はよく見るのですが、実際にプロジェクトとして走らせる場合に、アプリケーション構成からテストまで、どのようにするのがベストなのかを、まとめました。

SPAをベースに、サーバーサイド言語上で動かすときの構成も調べています。

ブラウザサポート

  • yyx990803/vue - Vue.jsはレガシー・ブラウザをサポートしていません。

参考記事

大きめのアプリケーション構成について

ガイドライン

より大きなアプリケーション構成をつくるためのガイドラインが、Building Larger Apps - vue.jsとしてドキュメントに記してあり、内容を以下に簡潔にまとめます。基本的には、このガイドラインに従ってアプリケーションを作成してゆくのがよいと考えています。

モジュール化

AngularJsのようにもとからモジュール化の仕組みはないので、BrowserifyWebpackをつかいます。

1ファイルコンポーネント

Vueify等をつかい、コンポーネントは1ファイルにします。

ここがAngularJsとは性質を全く別にするところで、Vue.jsは、基本的にコンポーネントを組み合わせてスクリプトをつくってゆきます。

ルーティング

マニュアルでもできますが、Page.jsDirectorなどのライブラリを使ったほうがより簡単に実装できます。

サーバーとの通信

Vue instanceが自動的にjson型にシリアライズされた$dataオブジェクトをもっています。場合によってはSuperagentなどを使ってもよいでしょう。

ユニットテスト

CommonJS pre-processorを用いてKarmaを使うのを推奨。

実例

ハッカーニュースのクローンをSPAで。Browserify + Vueifyをコードのモジュール化に使い、Director.jsをルーティングに、Firebase APIをバックエンドに使ったもの。

Railsにて動かす際の決め事

asset/javascriptには書かず別ファイルをつくり、全JSファイルをバンドルしたコードを読み込む。

良質な資料

※はてぶ数と記事の質は相関なし。

疑問点

よく調べきれていない点、ご教授願いたい点です。

  • 仮にRailsプロジェクトの場合、管理はgemでやるのがよいのか?フロントエンドのコードだけでも、bower、もしくはnpmでやるのがよいか?
  • GruntやGulpは入れたほうがよいのか?
  • Karmaを実装するまでの具体的な手順は?
  • Vueifyは、component内のDOMを、どのようにコンパイルするのか?

追記

疑問の答えをこちらにまとめました=>Vue.js on Railsパーフェクトガイド

169
168
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
169
168

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?