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

php中世界最好的语言
リリース: 2018-03-08 17:29:45
オリジナル
2238 人が閲覧しました

今回は、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 で タグを使用して個人的なお気に入りを記述する方法

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

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

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