Vue で v-for を更新する方法

Vue で v-for を更新する方法

ヒント:

  • 配列変更メソッドによりv-forが更新され、ページが更新されます。
  • 配列を変更しないメソッド: v-for を更新しない新しい配列を返します。更新された値を検出できない場合は、overwrite または this.$set() を使用できます。

配列の変更方法は次のとおりです。

1. arr.push()は後ろから要素を追加します

arr.push(5) について

2. arr.pop()は後ろの要素を1つだけ削除します

arr.pop()

3. arr.shift() は先頭の要素を削除します。削除できるのは 1 つだけです。

arr.shift() 関数

4. arr.unshift() は先頭から要素を追加し、追加後の配列の長さを返します。

arr.unshift(8) の並び替え

5. arr.splice(i,n)はi(インデックス値)からN(削除数)を削除します。

arr = [1,2,3,4,5]とする
console.log(arr.splice(2,2)) //[3,4]
console.log(arr) // [1,2,5]

6. arr.sort()は配列をソートし、ソートされた配列を返します。

arr = [2,10,6,1,4,22,3]とする
console.log(arr.sort()) // [1, 10, 2, 22, 3, 4, 6]
arr1 = arr.sort((a, b) => a - b) とします。  
console.log(arr1) // [1, 2, 3, 4, 6, 10, 22]
arr2 = arr.sort((a, b) => b a) とします。  
console.log(arr2) // [22, 10, 6, 4, 3, 2, 1]

7. arr.reverse() は配列を反転する

arr = [1,2,3,4,5]とする
console.log(arr.reverse()) // [5,4,3,2,1]
console.log(arr) // [5,4,3,2,1]

配列を変更しないメソッドは次のとおりです。

1. arr.concat()は2つの配列を結合する

arr = [1,2,3,4,5]とする
console.log(arr.concat([1,2])) // [1,2,3,4,5,1,2]
console.log(arr) // [1,2,3,4,5]

2. arr.slice(start,end) は、開始インデックスを除いて、開始から終了までのインデックスを切り取ります。

arr = [1,2,3,4,5]とする
console.log(arr.slice(1,3)) // [2,3]

オーバーライドメソッド

<li v-for="(val, index) in arr" :key="index">
     {{ val }}
   </li>
   <button @click="sliceBtn">最初の 3 つをスライスします</button>
   
    スライスボタン(){
   // 2. 配列スライスメソッドは v-for を更新しません // スライスは元の配列を変更しません // this.arr.slice(0, 3)

   // v-for 更新を解決 - 元の配列を上書きします let newArr = this.arr.slice(0, 3)
   this.arr = 新しいArr
 },

this.$set() メソッド

<li v-for="(val, index) in arr" :key="index">
     {{ val }}
   </li>
   <button @click="sliceBtn">インデックス 0 の値を更新します</button>
   
   スライスボタン(){
   // 値を更新すると、v-for はそれを検出できません // this.arr[0] = 1000
   
   // 解決策 - this.$set()
   // パラメータ 1: ターゲット構造を更新 // パラメータ 2: 位置を更新 // パラメータ 3: 値を更新 let newArr = this.arr.slice(0, 3)
   this.arr = 新しいArr
 },

Vue の v-for 更新検出に関するこの記事はこれで終わりです。より関連性の高い vue v-for 更新検出コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue.js の v-for リスト レンダリング命令の詳細な分析
  • vuejs v-for リストレンダリングの詳細な説明
  • vue v-for ループ オブジェクトの属性
  • Vue における v-for のキーの一意性の詳細な説明
  • vue の v-for ディレクティブはリストのレンダリングを完了します

<<:  MySQL カーソル関数と使用法

>>:  ウェブページ内でウェブテーブルやdivレイヤーが引き伸ばされる問題の解決策

推薦する

サーバー上で selenium+chromedriver を実行するための詳細なチュートリアル

1. はじめにSelenium を使用して Web サイトからデータをスクレイピングしたいのですが、...

MYSQLストアドプロシージャ、つまり一般的な論理知識のポイントの要約

MySQL ストアド プロシージャ1. ストアドプロシージャ構文(フォーマット)を作成する 区切り文...

要素 el-table テーブルの二次カプセル化 (テーブルの高さの調整付き)

序文会社でのインターンシップ中、フロントエンド開発にはvue+element-uiフレームワークを使...

vue+drf+サードパーティのスライディング検証コードアクセスの実装

目次1. 背景2. 検証プロセス3. 検証を作成する4. フロントエンドコード4.1 コアjsファイ...

ネイティブjsは9マスグリッドのドラッグアンドドロップを実現します

ネイティブJSを使用して9つの正方形のグリッドを記述し、9つのグリッドの位置をドラッグして変更する効...

Docker で MySQL マスターとスレーブをデプロイする方法

画像をダウンロードMySQLイメージの選択 docker 検索 mysql MySQL 5.7 イメ...

JS がビデオ弾幕効果を実現

これを実現するには、ES6 モジュール開発とオブザーバー モードを使用します。オブザーバー パターン...

dockerでredis5.0.3をインストールする方法

1. 公式5.0.3イメージを取得する [root@localhost ~]# docker pul...

HTML 選択オプションの基本的な理解と使用

JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...

ウェブページを開いて数秒後に他のページにリダイレクトする

これを実現するには、次のコードを追加するだけです。方法1: メタを使用する使用方法: <Met...

Mysql クエリの結果セットを JSON データに変換するサンプル コード

Mysql はクエリ結果セットを JSON データに変換します 序文 学生テーブル 学生スコアテーブ...

数千万のMySQLデータ量を素早くページ分割する方法

序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク IO のオーバーヘッドが...

Vue.$set の失敗の落とし穴の発見と解決

偶然、プロジェクト内でVue.$setが無効であることがわかりましたデータ フィルタリングを追加する...

Docker Compose を使用して Confluence を構築するチュートリアル

この記事は「Attribution 4.0 International (CC BY 4.0)」ライ...

TypeScript で時間を費やした場所の概要

TS で時間を過ごした場所をいくつか記録します。 (まず、文句を言わせてください。stackover...