| 原作者 | エヴァン・ユー |
|---|---|
| 開発者 | エヴァン・ユーとコアチーム[1] |
| 初回リリース | 2014年2月[2] |
| 安定版リリース | 3.5.13 [3]
/ 2024年10月11日 |
| リポジトリ |
|
| 書かれた | タイプスクリプト |
| プラットフォーム | ウェブプラットフォーム |
| サイズ | 33.9 KB以上+ gzip [4] |
| タイプ | JavaScript ライブラリ |
| ライセンス | MITライセンス[5] |
| Webサイト | 翻訳元 |
Vue.js (一般的にはVueと呼ばれ、「ビュー」と発音します[6] )は、ユーザーインターフェイスとシングルページアプリケーションを構築するためのオープンソースのモデル-ビュー-ビューモデルフロントエンドJavaScriptフレームワークです。[12]これはEvan Youによって作成され、彼と他のアクティブなコアチームメンバーによって維持されています。[13]
概要
Vue.jsは、宣言型レンダリングとコンポーネント構成に重点を置いた段階的に適応可能なアーキテクチャを特徴としています。コアライブラリはビュー層のみに焦点を当てています。[6]ルーティング、状態管理、ビルドツールなどの複雑なアプリケーションに必要な高度な機能は、公式にメンテナンスされたサポートライブラリとパッケージを通じて提供されます。[14]
Vue.jsでは、ディレクティブと呼ばれるHTML属性を使用してHTMLを拡張できます。 [15]ディレクティブはHTMLアプリケーションに機能を提供し、組み込みまたはユーザー定義のディレクティブとして提供されます。
歴史
Vue は、 GoogleでAngularJS をいくつかのプロジェクトで使用した後に、Evan You によって作成されました。彼は後に、自分の思考プロセスを次のようにまとめています。「Angular で本当に気に入っている部分を抽出して、本当に軽量なものを作れたらどうなるかと考えました。」 [16]プロジェクトの最初のソースコードコミットは 2013 年 7 月の日付で、当時は「Seed」と名付けられていました。[17] Vue は、翌年の 2014 年 2 月に初めて公開されました。[18] [19]
バージョン
新しいメジャーバージョン(v3.yz)がリリースされると、最後のマイナーバージョン(2.xy)は18か月間LTSリリース(バグ修正とセキュリティパッチ)となり、その後18か月間はメンテナンスモード(セキュリティパッチのみ)になります。[42]
特徴
コンポーネント
Vue コンポーネントは、基本的なHTML 要素を拡張して、再利用可能なコードをカプセル化します。高レベルでは、コンポーネントは、Vue のコンパイラが動作をアタッチするカスタム要素です。Vue では、コンポーネントは基本的に、定義済みのオプションを持つ Vue インスタンスです。[43] 以下のコード スニペットには、Vue コンポーネントの例が含まれています。このコンポーネントはボタンを表示し、ボタンがクリックされた回数を出力します。
<テンプレート>
< div id = "tuto" >
<ボタンがクリックされました v-bind:initial-count = "0" ></ボタンがクリックされました>
</ div >
</テンプレート>
< script >
Vue.component ( 'button-clicked' , { props : [ ' initialCount' ], data : () => ({ count : 0 , } ), template : '<button v-on:click="onClick">クリックされた回数{{count}}回</button>' , computed : { countTimesTwo ( ) { return this.count * 2 ; } } , watch : { count ( newValue , oldValue ) { console.log ( `countの値が${oldValue}から$ { newValue }に変更されました。` ) ; } } , methods : { onClick () { this.count + = 1 ; } } , mounted () { this.count = this.initialCount ; } }) ;
新しいVue ({ el : '#tuto' , }); </スクリプト>
テンプレート
Vue はHTMLベースのテンプレート構文を使用して、レンダリングされたDOM を基礎となる Vue インスタンスのデータにバインドできます。すべての Vue テンプレートは、仕様に準拠したブラウザーと HTMLパーサーで解析できる有効な HTML です。Vue はテンプレートを仮想 DOMレンダリング関数にコンパイルします。仮想ドキュメント オブジェクト モデル (または「DOM」) により、Vue はブラウザーを更新する前にメモリ内でコンポーネントをレンダリングできます。リアクティブ システムと組み合わせることで、Vue は再レンダリングするコンポーネントの最小数を計算し、アプリの状態が変わったときに最小限の DOM 操作を適用できます。 [44] Vue ユーザーはテンプレート構文を使用するか、関数呼び出しまたはJSX を介してハイパースクリプトを使用してレンダリング関数を直接記述することを選択できます。[45]レンダリング関数を 使用すると、ソフトウェア コンポーネントからアプリケーションを構築できます。[46]
反応性
Vueは、プレーンなJavaScriptオブジェクトと最適化された再レンダリングを使用するリアクティブシステムを備えています。各コンポーネントはレンダリング中にリアクティブ依存関係を追跡するため、システムはいつ再レンダリングするか、どのコンポーネントを再レンダリングするかを正確に把握します。[47]
トランジション
Vue は、アイテムがDOMに挿入、更新、または削除されるときにトランジション効果を適用するさまざまな方法を提供します。これには、次のツールが含まれます。
- CSSトランジションとアニメーションのクラスを自動的に適用する
- Animate.cssなどのサードパーティのCSSアニメーションライブラリを統合する
- 遷移フック中にJavaScriptを使用してDOMを直接操作する
- Velocity.jsなどのサードパーティのJavaScriptアニメーションライブラリを統合する
トランジション コンポーネントでラップされた要素が挿入または削除されると、次のことが起こります。
- Vue は、ターゲット要素に CSS トランジションまたはアニメーションが適用されているかどうかを自動的に検出します。適用されている場合は、適切なタイミングで CSS トランジション クラスが追加/削除されます。
- 遷移コンポーネントが JavaScript フックを提供している場合、これらのフックは適切なタイミングで呼び出されます。
- CSSトランジション/アニメーションが検出されず、JavaScriptフックが提供されていない場合、挿入および/または削除のDOM操作は次のフレームで直ちに実行されます。[48] [49]
ルーティング
シングルページ アプリケーション(SPA)の従来の欠点は、特定の Web ページ内の正確な「サブ」ページへのリンクを共有できないことです。SPA はサーバーからユーザーに 1 つの URL ベースの応答のみを提供するため (通常は index.html または index.vue を提供します)、特定の画面をブックマークしたり、特定のセクションへのリンクを共有したりすることは、不可能ではないにしても通常は困難です。この問題を解決するために、多くのクライアント側ルーターは、動的 URL を「ハッシュバン」(#!) で区切ります (例: page.com/#!/ ) 。ただし、HTML5 では、ほとんどの最新ブラウザーがハッシュバンなしのルーティングをサポートしています。
Vue は、現在の URL パスに基づいてページに表示される内容を変更するインターフェイスを提供します。変更方法 (メールのリンク、更新、ページ内リンクなど) は問いません。さらに、フロントエンド ルーターを使用すると、ボタンやリンクで特定のブラウザー イベント (クリックなど) が発生したときにブラウザー パスを意図的に遷移させることができます。Vue 自体には、フロントエンドのハッシュ ルーティングは付属していません。ただし、オープンソースの「vue-router」パッケージは、アプリケーションの URL を更新するための API を提供し、戻るボタン (履歴をナビゲート) や、認証 URL パラメーターを使用した電子メール パスワード リセットまたは電子メール検証リンクをサポートしています。ネストされたルートをネストされたコンポーネントにマッピングし、きめ細かい遷移制御を提供します。Vue を使用すると、開発者は既に、小さなビルディング ブロックで大きなコンポーネントを構築してアプリケーションを作成しています。vue-router を追加すると、コンポーネントは所属するルートにマッピングするだけでよく、親/ルート ルートは子がレンダリングされる場所を示す必要があります。[50]
< div id = "app" >
<ルータービュー></ルータービュー>
</ div >
...
<スクリプト>
...
const User = {テンプレート: '<div>User {{ $route.params.id }}</div>' };
const router = new VueRouter ({ルート: [ {パス: '/user/:id' 、コンポーネント: User } ] }); ... </スクリプト>
上記のコード:
- フロントエンドルートを設定します
websitename.com/user/<id>。 - これは (const User...) で定義された User コンポーネントでレンダリングされます。
- User コンポーネントが、$route オブジェクトの params キーを使用して URL に入力されたユーザーの特定の ID を渡すことを許可します
$route.params.id。 - このテンプレート (ルーターに渡されるパラメータによって変化します) は、
<router-view></router-view>DOM の div#app 内にレンダリングされます。 - 次のように入力すると、最終的に生成される HTML は次の
websitename.com/user/1ようになります。
< div id = "app" >
< div >
< div >ユーザー 1 </ div >
</ div >
</ div >
[51]
エコシステム
コア ライブラリには、コア チームと貢献者によって開発されたツールとライブラリが付属しています。
公式ツール
- Devtools – Vue.js アプリケーションをデバッグするためのブラウザ devtools 拡張機能
- Vite – 迅速な Vue.js 開発のための標準ツール
- Vue Loader – シングルファイルコンポーネント (SFC) と呼ばれる形式で Vue コンポーネントを記述できる Webpack ローダー
公式図書館
- Vue Router – SPAの構築に適した公式ルーター[17]
- Vuex – Fluxにヒントを得た集中型状態管理システム[52]
- Vue サーバー レンダラー– サーバーサイド レンダリング
- Pinia – 新しいシンプルな状態管理
参照
- JavaScript ベースの Web フレームワークの比較
- 反応する
- アンギュラー
- 角度
- クエーサーフレームワーク
- ウェブフレームワーク
- JavaScript ライブラリ
- モデル–ビュー–ViewModel
- 翻訳
出典
この記事には、フリーコンテンツ作品からのテキストが組み込まれています。MITライセンス(ライセンス ステートメント/許可) に基づいてライセンスされています。テキストは Vue.js ガイド、Vue.js から取得されています。
参考文献
- ^ 「Vue.js」。vuejs.org。
- ^ 「Vue.js リリース後 1 週間」。Evan You . 2019 年 2 月 5 日時点のオリジナルよりアーカイブ。2017 年3 月 11 日閲覧。
- ^ 「変更ログ 3.5.13 (2024-11-15)」。GitHub。
- ^ “@vue/runtime-dom v3.2.45”. Bundlephobia . 2023年1月29日時点のオリジナルよりアーカイブ。2023年1月29日閲覧。
- ^ "vue/LICENSE". Vue.js . 2017年4月17日閲覧– GitHub経由。
- ^ abc 「Introduction」。Vuejs.org . 2022年2月10日時点のオリジナルよりアーカイブ。2020年1月3日閲覧。
- ^ Macrae, Callum (2018). Vue.js : Up and Running: アクセシビリティとパフォーマンスに優れた Web アプリの構築。O'Reilly Media。ISBN 978-1-4919-9721-5. 2024年5月30日時点のオリジナルよりアーカイブ。2019年8月9日閲覧。
- ^ネルソン、ブレット (2018)。Vue.js を知る: ゼロから Vue でシングルページ アプリケーションを構築する方法を学ぶ。Apress。ISBN 978-1-4842-3781-6. 2024年5月30日時点のオリジナルよりアーカイブ。2019年8月9日閲覧。
- ^ Yerburgh, Edd (2019). Vue.js アプリケーションのテスト。Manning Publications。ISBN 978-1-61729-524-9. 2024年5月30日時点のオリジナルよりアーカイブ。2019年8月9日閲覧。
- ^ フリーマン、アダム (2018). Pro Vue.js 2.を押します。ISBN 978-1-4842-3805-9. 2024年5月30日時点のオリジナルよりアーカイブ。2019年8月9日閲覧。
- ^ Franklin, Jack; Wanyoike, Michael; Bouchefra, Ahmed; Silas, Kingsley; Campbell, Chad A.; Jacques, Nilson; Omole, Olayinka; Mulders, Michiel (2019). Vue.js での作業。SitePoint。ISBN 978-1-4920-7144-0。[永久リンク切れ ]
- ^ [7] [8] [9] [10] [11] [6]
- ^ “Meet the Team”. Vuejs.org . 2022年2月7日時点のオリジナルよりアーカイブ。2019年9月23日閲覧。
- ^ “Evan is creating Vue.js”. Patreon . 2019年3月3日時点のオリジナルよりアーカイブ。2017年3月11日閲覧。
- ^ “What is Vue.js”. W3Schools . 2020年1月22日時点のオリジナルよりアーカイブ。2020年1月21日閲覧。
- ^ “Evan You”. Between the Wires . 2016年11月3日. 2017年6月3日時点のオリジナルよりアーカイブ。 2017年8月26日閲覧。
- ^ ab 贾、志杰; 史、广。 赵、东 (2023).剑指大前端全栈工程师[意欲的なフロントエンド: フルスタック エンジニア] (中国語 (中国))。ISBN 9787302617594。
- ^ ab 「Vue.js: JavaScript MVVM を簡単に」。Hacker News。2014年2月3日。2023年1月29日時点のオリジナルよりアーカイブ。 2023年1月29日閲覧。
- ^ ab 「Vue.js リリース後 1 週間」。Evan You 2014 年 2 月 11 日。2017 年 4 月 12 日時点のオリジナルよりアーカイブ。2023 年1 月 29 日閲覧。
- ^ “Announcing Vue 3.5”. Vue.js. 2024年9月1日. 2024年9月3日時点のオリジナルよりアーカイブ。 2024年10月25日閲覧。
- ^ “Announcing Vue 3.4”. Vue.js. 2023年12月28日. 2024年3月24日時点のオリジナルよりアーカイブ。2024年3月29日閲覧。
- ^ “v3.3.0 るろうに剣心”. Vue.js。 2023年5月11日。2023年12月13日のオリジナルからアーカイブ。2023 年5 月 12 日に取得– GitHub 経由。
- ^ “v3.2.0 Quintessential Quintuplets”. Vue.js. 2021年8月5日. 2021年8月10日時点のオリジナルよりアーカイブ。2021年8月10日取得– GitHub経由。
- ^ “v3.1.0 Pluto”. Vue.js. 2021年6月7日. 2021年7月18日時点のオリジナルよりアーカイブ。2021年7月18日取得– GitHub経由。
- ^ “v3.0.0 One Piece”. Vue.js. 2020年9月18日. 2020年9月19日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “v2.7.0 Naruto”. Vue.js. 2022年7月1日. 2022年7月1日時点のオリジナルよりアーカイブ。2022年7月1日取得– GitHub経由。
- ^ “v2.6.0 Macross”. Vue.js. 2019年2月4日. 2020年11月11日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ 「v2.5.0 レベル E」。Vue.js。2017年10月13日。2020年9月18日時点のオリジナルよりアーカイブ。2020年9月23日取得– GitHub経由。
- ^ “v2.4.0 Kill la Kill”. Vue.js. 2017年7月13日. 2020年11月9日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “v2.3.0 ジョジョの奇妙な冒険”. Vue.js. 2017年4月27日. 2020年11月11日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “v2.2.0 Initial D”. Vue.js. 2017年2月26日. 2021年4月13日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “v2.1.0 Hunter X Hunter”. Vue.js. 2016年11月22日. 2020年11月8日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “v2.0.0 Ghost in the Shell”. Vue.js. 2016年9月30日. 2020年10月27日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “1.0.0 エヴァンゲリオン”. Vue.js. 2015年10月27日. 2021年4月13日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “0.12.0: Dragon Ball”. Vue.js. 2015年6月12日. 2021年4月13日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “v0.11.0: Cowboy Bebop”. Vue.js. 2014年11月7日. 2021年4月13日時点のオリジナルよりアーカイブ。 2020年9月23日閲覧– GitHub経由。
- ^ “v0.10.0: Blade Runner”. Vue.js. 2014年3月23日. 2021年4月13日時点のオリジナルよりアーカイブ。 2020年9月23日閲覧– GitHub経由。
- ^ “v0.9.0: Animatrix”. Vue.js. 2014年2月25日. 2021年4月13日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “v0.8.0”. Vue.js. 2014年1月27日. 2021年4月13日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “v0.7.0”. Vue.js. 2013年12月24日. 2021年4月13日時点のオリジナルよりアーカイブ。 2020年9月23日閲覧– GitHub経由。
- ^ “0.6.0: VueJS”. Vue.js. 2013年12月8日. 2021年4月13日時点のオリジナルよりアーカイブ。2020年9月23日閲覧– GitHub経由。
- ^ “Vue Roadmap”. Vue.js. 2022年11月6日. 2021年12月10日時点のオリジナルよりアーカイブ。 2021年12月10日取得– GitHub経由。
- ^ “コンポーネント”. Vuejs.org . 2022年2月10日時点のオリジナルよりアーカイブ。2017年3月11日閲覧。
- ^ Jordan, John. 「Vue Admin Template」。2022年7月16日閲覧。
- ^ “テンプレート構文”. Vuejs.org . 2022年2月10日時点のオリジナルよりアーカイブ。2017年3月11日閲覧。
- ^ 「Vue 2.0 is Here!」The Vue Point 2016年9月30日。2017年3月12日時点のオリジナルよりアーカイブ。 2017年3月11日閲覧。
- ^ 「Reactivity in Depth」。Vuejs.org 。 2022年2月10日時点のオリジナルよりアーカイブ。2017年3月11日閲覧。
- ^ 「トランジション効果」。Vuejs.org 。 2023年12月13日時点のオリジナルよりアーカイブ。2017年3月11日閲覧。
- ^ “Transitioning State”. Vuejs.org . 2022年2月10日時点のオリジナルよりアーカイブ。2017年3月11日閲覧。
- ^ “ルーティング”. Vuejs.org . 2022年2月10日時点のオリジナルよりアーカイブ。2017年3月11日閲覧。
- ^ You, Evan. 「Vue Nested Routing (2)」。Vue ホームページ (サブページ)。2017 年 5 月 8 日時点のオリジナルよりアーカイブ。2017 年5 月 10 日閲覧。
- ^ Lau Tiam, Kok.実践的な Nuxt.js Web 開発: Nuxt.js を使用してユニバーサルかつ静的に生成された Vue.js アプリケーションを構築する。ISBN 9781789952698。
外部リンク
- 公式サイト
