DEV Community

Cover image for Perulangan Di Vue Js
MedanInCode
MedanInCode

Posted on • Originally published at medanincode.com

Perulangan Di Vue Js

Tutorial kali ini akan membahas bagaimana menggunakan perulangan di vue.

Untuk melakukan ini di vue kita menggunakan directive v-for.

Menampilkan data array

Misalnya kita punya data array nama-nama siswa

siswa: ["budi","andi","caca"]
Enter fullscreen mode Exit fullscreen mode

atau jika menggunakan struktur vue akan seperti ini.

export default {
  name: "App",
  data: () => {
    return {
      siswa: ["budi","andi","caca"]
    };
  }
};
Enter fullscreen mode Exit fullscreen mode

Data tersebut akan kita tampilkan menggunakan v-for.Maka template vue nya akan menjadi seperti ini

<ul>
  <li v-for="nama in siswa">
  {{ nama }}
  </li>
</ul>
Enter fullscreen mode Exit fullscreen mode

Kita menggunakan html list untuk menampilkan nama siswa.Bisa dilihat kita melakukan perulangan dengan variable siswa dan nama sebagai alias untuk item satuan.Kemudian karena ini hanya array kita langsung mencetak dengan seperti dibawah ini.

{{ nama }}
Enter fullscreen mode Exit fullscreen mode

Perulangan Di Vue Js 1

Kita juga bisa menampilkan index dari masing-masing data tersebut dengan menambahkan kode seperti dibawah.

<ul>
  <li v-for="(nama,index) in siswa">
   {{index+1}}.{{ nama }}
  </li>
</ul>
Enter fullscreen mode Exit fullscreen mode

Index diawali dari 0 jadi kita menambah 1 ketika mencetak.Maka akan keluar hasil seperti dibawah ini.

Perulangan Di Vue Js 2

Menampilkan data object

Sebenarnya cara sama saja menampilkan data object ataupun array dengan v-for

Jika kita punya data seperti dibawah ini.

siswa : {
  nama:'budi',
  kelas:'XII-A',
  jurusan:'RPL'
}
Enter fullscreen mode Exit fullscreen mode

Kode template sama saja

<ul>
  <li v-for="value in siswa">
   {{ value }}
  </li>
</ul>
Enter fullscreen mode Exit fullscreen mode

Kita juga bisa menampilkan key dari object sebagimana index dari array sebelumnya.

<ul>
  <li v-for="(value,key) in siswa">
   {{key}} : {{ value }}
  </li>
</ul>
Enter fullscreen mode Exit fullscreen mode

Maka akan mendapatkan hasil seperti dibawah ini.

Perulangan Di Vue Js 3

Di object kita bisa menambahkan satu parameter lagi yaitu index sehingga menjadi seperti ini.

<ul>
  <li v-for="(value,key,index) in siswa">
    {{index+1}}. {{key}} : {{ value }}
  </li>
</ul>
Enter fullscreen mode Exit fullscreen mode

Perulangan Di Vue Js 4

Menampilkan Data Collection

Jika kita mendapatkan data dari api backend,seringkali data yang didapatkan berbentuk collection atau array object atau berformat data JSON.

Misalnya seperti data dibawah.

siswa : [
   {
    nama:'budi',
    kelas:'XII-A',
    jurusan:'RPL'
   },
   {
    nama:'andi',
    kelas:'XII-B',
    jurusan:'TKJ'
   },
   {
    nama:'caca',
    kelas:'XII-A',
    jurusan:'RPL'
    }
 ]
Enter fullscreen mode Exit fullscreen mode

Kita akan menampilkan kedalam html tabel.Maka kode v-for untuk table kurang lebih seperti dibawah ini.

<table border="1">
  <tr>
    <th>No</th>
    <th>Nama</th>
    <th>Kelas</th>
    <th>Jurusan</th>
  </tr>
  <tr v-for="(data,index) in siswa">
    <td>{{index+1}}</td>
    <td>{{data.nama}}</td>
    <td>{{data.kelas}}</td>
    <td>{{data.jurusan}}</td>        
  </tr>
</table>
Enter fullscreen mode Exit fullscreen mode

Kenapa kita meletakkan v-for di tr,karena tr lah yang akan kita looping sebanyak data siswa.data.nama berarti kita memanggil key nama dari variabel data yang sudah jadi objek dari perulangan siswa.

Attribut v-bind:key

Attribut ini bisa juga dipanggil hanya dengan :key.Jika kita menggunakan v-for maka vue menyarankan kita harus menggunakan attribute ini,di IDE apalagi yang menggunakan syntax linter ,akan menunjukan warning di baris kodenya jika kita tidak menambahkan key saat pakai v-for.Attribute ini berperan sebagai penanda unik ,kayak primary key lah kalau di database,agar vue bisa melakukan tracking perubahan setiap tag html saat dirender.

Asal dari :key ini bisa dari index dari array,key atau properti dari object.

Contohnya :

<ul>
  <li v-for="(value,index) in siswa" v-bind:key="index">
   {{index+1}}. {{ value }}
  </li>
</ul>
Enter fullscreen mode Exit fullscreen mode

atau jika kita punya object yang memiliki attribute unik.

siswa : [
   {
    id:1,
    nama:'budi'
   },
   {
    id:2,
    nama:'andi'
   }
]
Enter fullscreen mode Exit fullscreen mode

Maka kode htmlnya bisa seperti dibawah ini.

<ul>
  <li v-for="(data,index) in siswa" v-bind:key="data.id">
   {{index+1}}. {{ data.nama }}
  </li>
</ul>
Enter fullscreen mode Exit fullscreen mode

Sampai sini dulu pembahasan mengenai penggunaan v-for,silahkan bertanya dibawah jika ada yang kurang dimengerti.

Top comments (0)