ホームページ >ウェブフロントエンド >htmlチュートリアル >Vueリストレンダリングの詳しい説明

Vueリストレンダリングの詳しい説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-08 17:29:452279ブラウズ

今回は、Vue リスト レンダリングの詳細な説明と、Vue リスト レンダリングの 注意事項 について詳しく説明します。以下は実際のケースです。見てみましょう。

Mutation メソッドは、名前が示すように、これらのメソッドによって呼び出される元の配列を変更します。対照的に、filter()、concat()、slice() などの非変更メソッドもあります。これらは元の配列を変更しませんが、常に新しい配列を返します。非突然変異メソッドを使用する場合、古い配列を新しい配列で置き換えることができます:

example1.items = example1.items.filter(function (item) {  return item.message.match(/Foo/)})
<div id="example">
  <div>
    <button @click="concat()">concat</button>
    <button @click="slice()">slice</button>
    <button @click="filter()">filter</button>
  </div>
  <ul>
    <li v-for="item in items">
      {{item.list}}
    </li>
  
  </ul>
</div>
<script>
  var example = new Vue({
    el:"#example",
    data:{
      items:[
        {list:5},
        {list:6},
        {list:7}
      
      ],
      addValue:{list:10}
    },
    methods:{
      concat(){
     this.items= this.items.concat(this.addValue)
      },
      slice(){
      this.items = this.items.slice(1)
      },
      filter(){
      this.items = this.items.filter(function(item,index,arr) {
          return (index > 0)
        })
      }
    
    }
  })

上記の操作では、Vue が既存の DOM を破棄してリスト全体を再レンダリングすることはありません。 Vue は DOM 要素の再利用を最大限に高めるためのいくつかのスマート ヒューリスティックを実装しているため、元の配列を同じ要素を含む配列に置き換えることは非常に効率的な操作です

注意事項

JavaScript の制限により、Vue は次の配列の変更を検出できません:

インデックスを使用して項目を直接設定する場合、たとえば:

vm.items[indexOfItem] = newValue

配列の長さを変更する場合、たとえば:

vm.items.length = newLength

最初の種類の問題を解決するには、次の 2 つの方法を実装できます。これは vm.items[indexOfItem] = newValue と同じ効果があり、statusupdate:

// Vue.set
Vue.set(example1.items, indexOfItem, newValue)
// Array.prototype.splice
example1.items.splice(indexOfItem, 1, newValue)

もトリガーします。2 番目のタイプの問題を解決するには、splice:

example1.items.splice(newLength)

を使用できます。この記事の事例を読んだ後は、それをマスターしたことになります。さらにエキサイティングな方法については、php 中国語 Web サイトの他の関連記事に注目してください。

関連記事:

HTML で 3499910bf9dac5ae3c52d5ede7383485 タグを使用して個人的なお気に入りを記述する方法

img タグを使用して画像を作成する HTML 1 の FAQ

以上がVueリストレンダリングの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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