LoginSignup
5
6

More than 3 years have passed since last update.

vue.jsでリストレンダリング

Last updated at Posted at 2019-10-05

vue.jsでリストレンダリングをやってみる

vue.js側に設定した配列に格納された要素全てをテンプレート側にレンダリングして表示する。
ブラウザ場でjsの実行環境を利用できるサービス jsfiddle を利用する。

基本形

dataプロパティ内の要素をv-forディレクティブで表示する。

配列に基づいて、アイテムのリストを描画するために、v-for ディレクティブを使用することができます。v-for ディレクティブは item in items の形式で特別な構文を要求し、items はソースデータの配列で、item は配列要素がその上で反復されているエイリアスです:

https://jp.vuejs.org/

上記vue公式にある通り、v-forディレクティブを利用する場合は、配列要素を代入する変数 in 配列名となる

<div id="app">
<ul>
  <li v-for="item in items">{{item}}</li>
</ul>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
var app = new Vue({
    el:'#app',
  data:{
    items:["item1", "item2", "item3"]
  }
})

実行結果
image.png

配列に格納されたオブジェクトのキーを指定して表示する。

使い所すくなそう

<div id="app">
<ul>
  <li v-for="item in items">{{item.message}}</li>
</ul>
</div>
var app = new Vue({
    el:'#app',
  data:{
    items:[
        {message: 'foo'},
        {message: 'var'}
    ]
  }
})

実行結果
image.png

リストレンダリングの結果に配列の添字を表示する

(配列要素を代入する変数, index) in 配列名とすることでindexに添字を代入できる

div id="app">
<ul>
  <li v-for="(item, index) in items">{{item.message}} {{index}}</li>
</ul>
</div>
var app = new Vue({
    el:'#app',
  data:{
    items:[
        {message: 'foo'},
      {message: 'var'},
      {message: 'hoge'},
      {message: 'hogege'}
    ]
  }
})

実行結果
image.png

オブジェクトの要素をリストレンダリングする

基本的には配列の場合と同様に(オブジェクトのvalueを代入する変数) in オブジェクト名と書く

<div id="app">
<ul>
  <li v-for="value in objects">{{value}}</li>
</ul>
</div>

var app = new Vue({
    el:'#app',
  data:{
    objects:{
        object1: 'foo',
      object2: 'var',
      object3: 'hoge',
      object4: 'hogege'
    }
  }
})

image.png

オブジェクトのキー名とvalueを併せてリストレンダリング

<div id="app">
<ul> 
  <li v-for="(value, index) in objects">{{index}}:{{value}}</li>
</ul>
</div>

var app = new Vue({
    el:'#app',
  data:{
    objects:{
        object1: 'foo',
      object2: 'var',
      object3: 'hoge',
      object4: 'hogege'
    }
  }
})

実行結果
image.png

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6