Vue.jsの基礎知識まとめ_その他

May 16, 2016 pm 03:03 PM
vue.js

はじめに

vue.js は、Web アプリケーション インターフェイスの構築に使用されるライブラリです

技術的には、Vue.js は MVVM パターンの ViewModel 層に焦点を当てており、ビューとデータ バインディング モデルを 2 つの方法で接続します。実際の DOM 操作と出力フォーマットは、ディレクティブとフィルターに抽象化されます

哲学の分野では、MVVM データ バインディング API をできるだけシンプルにするように努めてください。モジュール性と構成可能性も重要な設計上の考慮事項でした。 Vue は包括的なフレームワークではなく、シンプルかつ柔軟になるように設計されています。これをラピッド プロトタイピングに使用したり、他のライブラリと組み合わせてフロントエンド スタックを定義したりできます。

ビュー。 js API は、AngularJS、KnockoutJS、Ractive.js、Rivets.js を指します。類似点にもかかわらず、Vue.js は既存のフレームワークの一部をトレードオフできる価値を提供すると信じています

これらの用語の一部をすでによく知っている場合でも、これらの用語の概念は次の Vue.js では異なる可能性があるため、次の概念の概要を確認することをお勧めします

コンセプトの概要

モデルの表示

Vue.js では、ViewModel はインスタンス化された Vue またはそのサブクラスのコンストラクターです。

var vm = new Vue({ /* options */ })
ログイン後にコピー

これは、Vue.js を使用するときに開発者として対話する主なオブジェクトです。詳細については、「クラス: Vue」を参照してください。

表示

ユーザーに表示される実際の HTML/DOM

vm.$el // The View
ログイン後にコピー


Vue.js を使用する場合、独自のカスタム命令を除いて、DOM 操作に触れることがほとんどありません。また、ビューの更新は各 testNode ノードに対して非常に正確にトリガーされます。バッチ処理して非同期に実行するため、パフォーマンスが向上します。

モデル

これは少し変更された Javascript オブジェクトです

vm.$data // The Model
ログイン後にコピー

Vue.js では、モデルは単なる JavaScript オブジェクトとデータ オブジェクトであり、そのプロパティを操作してモデルを表示し、その変更を観察して通知を受け取ることができます。 Vue.js は ES5 ゲッター/セッターを使用してデータ オブジェクトの属性を変換するため、ダーティ チェックを行わずに直接操作を行うことができます。

データ オブジェクトは必要に応じて変更されるため、データ オブジェクトを変更すると、参照によって vm.$data を変更するのと同じ効果が得られます。これにより、複数の ViewModel インスタンスが同じデータを観察することも容易になります。

技術的な詳細については、「インスタンス化オプション: データ」を参照してください。

ディレクティブ

プライベート HTML 属性は、Vue.js に DOM 上で何らかの処理を実行するよう指示します

<div v-text="message"></div>
ログイン後にコピー

ここの div 要素には v-text ディレクティブがあり、値は message です。これは、この div ノードのコンテンツを viewMode の message 属性と同期しておくように Vue.js に指示することを意味します

ディレクティブは、あらゆる DOM 操作をカプセル化できます。たとえば、v-attr は属性要素を操作し、v-repeat は配列に基づいて要素をクローンし、v-on はイベント監視をアタッチします。これについては後で説明します。

口ひげバインディング

テキストと属性の両方で口ひげスタイルのバインディングを使用することもできます。これらは v-text v-attr ディレクティブに変換されます。例:

<div id="person-{{id}}">Hello {{name}}!</div>
ログイン後にコピー

便利ですが、注意すべき点がいくつかあります。

画像の src 属性を設定すると HTTP リクエストが送信されるため、初めてテンプレートを解析して 404 が表示されたときは、この時点では v-attr を使用した方がよい

Internet Explorer は HTML を解析するときに無効な内部スタイル属性を削除するため、IE バインディング インライン CSS をサポートしたい場合は常に v-style を使用します

v-html 内では、エスケープされていない HTML を処理するために 3 つの中括弧 {{{like this}}} を使用できますが、これには潜在的な XSS 攻撃があり、ウィンドウが開く可能性があるため、絶対に安全であることを推奨します。これのみを実行してください。データが完了したら、カスタム パイプライン フィルターを通じて信頼できない HTML をクリーンアップします

フィルター

ビューを更新する前に、関数を使用してこの生データを処理できます。 「パイプライン」ディレクティブまたはバインディングを使用しています:

<div>{{message | capitalize}}</div>
ログイン後にコピー

div のテキスト内容が更新される前に、このメッセージの値が Capitalize 関数によって処理されます。詳細については、「フィルターの詳細」を参照してください。

コンポーネント

Vue.js では、コンポーネントは単純なビュー モデル コンストラクターであり、Vue.component(ID,constructor) を通じて登録されます。別の View Model のテンプレートの v-component ディレクティブは、関連付けられた ID を介してネストできます。このシンプルなメカニズムにより、最新のブラウザや高耐久のポリフィルを必要とせずに、Web コンポーネントと同様の方法で宣言型ビュー モデルを再利用および構成できます。アプリケーションを小さなコンポーネントに分割することで、高度に分離された保守可能なコード ベースが得られます。詳細については、「ViewModel の作成」を参照してください。

簡単な例

<div id="demo">
  <h1>{{title | uppercase}}</h1>
  <ul>
    <li
      v-repeat="todos"
      v-on="click: done = !done"
      class="{{done &#63; 'done' : ''}}">
      {{content}}
    </li>
  </ul>
</div>
ログイン後にコピー
 
var demo = new Vue({
  el: '#demo',
  data: {
    title: 'todos',
    todos: [
      {
        done: true,
        content: 'Learn JavaScript'
      },
      {
        done: false,
        content: 'Learn vue.js'
      }
    ]
  }
})

ログイン後にコピー

大まかな翻訳です。間違いがあればご指摘ください

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

実践的な戦闘: vue ファイルをサポートして定義にジャンプするプラグインを vscode で開発する 実践的な戦闘: vue ファイルをサポートして定義にジャンプするプラグインを vscode で開発する Nov 16, 2022 pm 08:43 PM

vscode 自体は、定義にジャンプするための Vue ファイル コンポーネントをサポートしていますが、そのサポートは非​​常に弱いです。 vue-cli の構成では、多くの柔軟な使用法を記述することができるため、制作効率が向上します。しかし、これらの柔軟な記述方法により、vscode 自体が提供する関数がファイル定義へのジャンプをサポートできなくなります。これらの柔軟な記述方法に対応し、作業効率を向上させるために、Vue ファイルの定義へのジャンプをサポートする vscode プラグインを作成しました。

vite が .env ファイルを解析する方法についての詳細な説明 vite が .env ファイルを解析する方法についての詳細な説明 Jan 24, 2023 am 05:30 AM

Vue フレームワークを使用してフロントエンド プロジェクトを開発する場合、デプロイ時に複数の環境をデプロイすることになりますが、開発環境、テスト環境、オンライン環境で呼び出されるインターフェイス ドメイン名が異なることがよくあります。どうすれば区別できるでしょうか?それは環境変数とパターンを使用することです。

vue のコンポーネント化とモジュール化の違いは何ですか vue のコンポーネント化とモジュール化の違いは何ですか Dec 15, 2022 pm 12:54 PM

コンポーネント化とモジュール化の違い: モジュール化はコード ロジックの観点から分割され、コードの階層化された開発が容易になり、各機能モジュールの機能の一貫性が保証されます。コンポーネント化は UI インターフェイスの観点から計画され、フロントエンドのコンポーネント化により UI コンポーネントの再利用が容易になります。

vue3 の reactive() について詳しく話しましょう vue3 の reactive() について詳しく話しましょう Jan 06, 2023 pm 09:21 PM

前書き: vue3 の開発では、reactive は応答性の高いデータを実装するメソッドを提供します。これは日常の開発で頻繁に使用される API です。この記事では、著者はその内部動作メカニズムを探ります。

Ace コード エディターを Vue プロジェクトに統合する方法の詳細な図による説明 Ace コード エディターを Vue プロジェクトに統合する方法の詳細な図による説明 Apr 24, 2023 am 10:52 AM

Ace は、JavaScript で書かれた埋め込み可能なコード エディターです。 Sublime、Vim、TextMate などのネイティブ エディターの機能とパフォーマンスに匹敵します。あらゆる Web ページや JavaScript アプリケーションに簡単に埋め込むことができます。 Ace は Cloud9 IDE のメイン エディタとして維持されており、Mozilla Skywriter (Bespin) プロジェクトの後継です。

Vue3 で単体テストを作成する方法を調べる Vue3 で単体テストを作成する方法を調べる Apr 25, 2023 pm 07:41 PM

Vue.js は、今日のフロントエンド開発において非常に人気のあるフレームワークとなっています。 Vue.js が進化し続けるにつれて、単体テストの重要性がますます高まっています。今日は、Vue.js 3 で単体テストを作成する方法を検討し、いくつかのベスト プラクティスと一般的な問題と解決策を提供します。

Vue3 動的コンポーネントで例外を処理する方法の簡単な分析 Vue3 動的コンポーネントで例外を処理する方法の簡単な分析 Dec 02, 2022 pm 09:11 PM

Vue3 動的コンポーネントで例外を処理するにはどうすればよいですか?次の記事では、Vue3 の動的コンポーネントの例外処理方法について説明します。

Vue2実装APIの原理を解析する Vue2実装APIの原理を解析する Jan 13, 2023 am 08:30 AM

Vue3 のリリース以来、単語合成 API は Vue を書く学生の視野に入ってきました。合成 API が以前のオプション API よりもどれほど優れているかは誰もが聞いたことがあると思います。そして、@ のリリースにより、 vue/composition-api プラグイン、Vue2 学生もバスに乗れます. 次に、主に Response ref と Reactive を使用して、このプラグインがどのようにこれを実現しているかを詳細に分析します。

See all articles