ホームページ > ウェブフロントエンド > Vue.js > Vue を使用してデータのフィルタリングと取得機能を実装するにはどうすればよいですか?

Vue を使用してデータのフィルタリングと取得機能を実装するにはどうすればよいですか?

PHPz
リリース: 2023-06-27 08:46:53
オリジナル
2600 人が閲覧しました

Vue は、最新の Web アプリケーションの構築によく使用される人気の JavaScript フレームワークです。 Vue データ バインディング システムにより、フロントエンド開発がよりシンプルかつ直感的になります。 Vue には、フィルター処理など、データを処理するための便利なツールもいくつか用意されています。この記事では、Vue を使用してデータのフィルタリングと取得機能を実装する方法を紹介します。

1. データ フィルターに計算プロパティを使用する

Vue の計算プロパティは応答性が高く、依存データの変更に応じてリアルタイムでデータを更新できます。これにより、データ フィルターを非常に簡単に作成できるようになります。計算されたプロパティは、アプリケーションでフィルター処理されたデータを表示するために使用できる新しい配列を返すことができます。

次の例では、入力ボックスを使用して検索機能を実装します。この入力ボックスを Vue コンポーネント インスタンスのデータ モデルにバインドします。次に、計算されたプロパティを使用してリスト データをフィルターし、検索キーワードを含む項目のみを表示します。

HTML:

<div id="app">
  <input v-model="search" type="text" placeholder="Search...">
  <ul>
    <li v-for="item in filteredItems">{{ item }}</li>
  </ul>
</div>
ログイン後にコピー
ログイン後にコピー

JavaScript:

new Vue({
  el: '#app',
  data: {
    search: '',
    items: [
      'Apple',
      'Banana',
      'Orange',
      'Mango',
      'Pear'
    ]
  },
  computed: {
    filteredItems: function () {
      var search = this.search.toLowerCase();
      return this.items.filter(function (item) {
        return item.toLowerCase().indexOf(search) !== -1;
      })
    }
  }
})
ログイン後にコピー

v-model ディレクティブを通じて入力ボックスを検索属性にバインドします。次に、v-for ディレクティブを使用して、フィルターされたデータをテンプレートにレンダリングします。

Vue インスタンスの計算されたプロパティでは、まず検索キーワードを小文字に変換し、次に filter() メソッドを使用して検索キーワードに一致する項目をフィルターで除外します。

2. データのフィルタリングと取得のためにルーティングと計算されたプロパティを組み合わせる

Vue Router を使用してルーティングを管理する場合、ルーターのクエリ パラメーターを使用して、より高度な検索機能を実装できます。これにより、ユーザーは URL で検索結果を確認したり、URL クエリ パラメーターを介して検索結果を共有したりできます。

HTML:

まず、検索値をクエリ パラメーターとして渡すように、入力ボックスのバインドを変更する必要があります。ルーターの $route オブジェクトを使用して検索パラメーターを取得します。次に、コンポーネント インスタンスのデータ モデルの代わりにルート パラメーターを使用するように、計算されたプロパティを変更します。

<div id="app">
  <input v-model="search" type="text" placeholder="Search...">
  <ul>
    <li v-for="item in filteredItems">{{ item }}</li>
  </ul>
</div>
ログイン後にコピー
ログイン後にコピー

JavaScript:

const router = new VueRouter({
  routes: [{
    path: '/',
    component: App,
    name: 'home'
  }]
});

const App = {
  data: function() {
    return {
      items: [
        'Apple',
        'Banana',
        'Orange',
        'Mango',
        'Pear'
      ],
      search: ''
    };
  },
  computed: {
    filteredItems: function() {
      var search = this.$route.query.search.toLowerCase();
      return this.items.filter(function(item) {
        return item.toLowerCase().indexOf(search) !== -1;
      });
    }
  }
};

new Vue({
  router,
  el: '#app',
  template: '<router-view></router-view>'
});
ログイン後にコピー

ルーターを Vue インスタンスに渡し、router-view ディレクティブをコンポーネントに置き換えます。コンポーネントでは、$route.query.search を使用してクエリ パラメーターを取得できます。次に、計算されたプロパティを使用して、検索パラメーターに基づいてリストをフィルターします。

この例では、ユーザーが入力ボックスに新しい検索キーワードを入力している限り、URL 内のクエリ パラメーターが更新され、新しいパラメーターに基づいてリストが更新されます。

概要:

この記事では、Vue で計算プロパティとルーターを使用してデータのフィルタリングと取得機能を実装する方法を紹介しました。このようにして、ユーザーは URL で検索結果を表示し、その結果を他の場所で簡単に共有できるようになります。また、Vue のデータ バインディングと計算されたプロパティ システムにより、フロントエンドでの検索機能とフィルター機能の実装の難しさが大幅に簡素化されることもわかりました。

以上がVue を使用してデータのフィルタリングと取得機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート