1. 程式人生 > >VueJS----[內部指令-1.3]----v-for指令 :解決模板迴圈問題

VueJS----[內部指令-1.3]----v-for指令 :解決模板迴圈問題

v-for指令 :解決模板迴圈問題

v-for指令是迴圈渲染一組data中的陣列,v-for 指令需要以 item in items 形式的特殊語法,items 是源資料陣列並且item是陣列元素迭代的別名。

基本語法:

<li v-for="item in items">
  {{item}}
</li>

js寫法:

var app=new Vue({
     el:'#app',
     data:{
         items:[12,2,6,4,24,6,56]
     }
})

這是一個最基礎的迴圈,先在js裡定義了items陣列,然後在模板中用v-for迴圈出來,需要注意的是,需要哪個html標籤迴圈,v-for就寫在那個上邊。

排序:

當我們需要對顯示的資料進行排序時,可以用到Vue的compueted屬性

computed:{
    sortItems:function(){
          return this.items.sort();
    }
}

我們要在computed中聲名一個物件sotrItems,如果不聲名,會報錯,這時要將迴圈的那個資料改成排序後的sotrItems陣列。

到這 ,如果一切順利的話,會看到結果,但是還有一個小bug,當我們把陣列中的值隨便改一個,排序結果會吧修改後的那個數值放在最後,很顯然不是我們想要的,因此需要寫一個方法sortNumber來解決這個bug。

function sortNumber(a,b){
   return a-b
}

用法:

computed:{
    sortItems:function(){
    return this.items.sort(sortNumber);
    }
 }

現在這個排序是ok的。

物件迴圈輸出

我們在做專案的時候經常會將物件陣列進行遍歷,那麼我們就先看一下是如何進行遍歷的。
1.先定義一個數組,數組裡是物件資料

students:[
 {name:'Cheny',age:21},
 {name:'Boom',age:19},
 {name:'ChenDaYong'
,age:17}, {name:'Chen',age:16} ]

在模板中輸出:

<ul>
<li v-for="stu in students">
({{index}}:){{stu.name}},{{stu.age}}
</li>
</ul>

也可以加入索引

<ul>
    <li v-for="(stu,index) in sortStudents">
        ({{index}}:){{stu.name}},{{stu.age}}
    </li>
</ul>

完整程式碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-for</title>
    <script type="text/javascript" src="../assets/js/vue.js"></script>
</head>
<body>
    <h1>v-for</h1>
    <div id="app">
        <ul>
            <li v-for="item in sortItems">
                {{item}}
            </li>
        </ul>
        <ul>
            <li v-for="(stu,index) in sortStudents">
                ({{index}}:){{stu.name}},{{stu.age}}
            </li>
        </ul>
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el:'#app',
            data:{
                items:[12,2,6,4,24,6,56],
                students:[
                    {name:'Cheny',age:21},
                    {name:'Boom',age:19},
                    {name:'ChenDaYong',age:17},
                    {name:'Chen',age:16}
                ]
            },
            computed:{
                sortItems:function(){
                    return this.items.sort(sortNumbers);
                },
                sortStudents:function(){
                    return sortByKey(this.students,'age');
                }
            }
        });
        function sortNumbers(a,b){
            return a-b;
        }
        //陣列物件的排序方法
        function sortByKey(array,key){
            return array.sort(function(a,b){
                var x=a[key];
                var y=b[key];
                return ((x<y)?-1:((x>y)?1:0));
            });
        }
    </script>
</body>
</html>

相關推薦

VueJS----[內部指令-1.3]----v-for指令 解決模板迴圈問題

v-for指令 :解決模板迴圈問題 v-for指令是迴圈渲染一組data中的陣列,v-for 指令需要以 item in items 形式的特殊語法,items 是源資料陣列並且item是陣列元素迭代的別名。 基本語法: <li v-for=

1.4 Vue v-if,v-show與v-for指令

v-if,v-show與v-for <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>v-if,v-show與v-for指令</title>

Vue:v-for指令

-1 color ges png lan img ood utf food <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

VUE指令-列表渲染v-for

center 20px lod 關聯 width utf-8 狀態 onclick -v-if v-for 指令根據一組數組的選項列表進行渲染。v-for 指令需要使用 item in items 形式的特殊語法,items 是源數據數組並且 item 是數組元素叠代的別名

v-for指令

title log post pre name sco lang src lan <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

v-for 指令

AC title item alt log doctype 列表 圖片 rip v-for 指令可以綁定數組的數據來渲染一個項目列表 demo <!DOCTYPE html> <html lang="en"> <head> &l

Vue學習(五)——v-if,v-show,v-for指令

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>v-if,v-show,v-for指令</title> <script

16.VUE學習之- v-for指令的使用方法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!--<script src="https://cdn.jsdelivr.net/npm/vue/dist

Vs Code在Vue專案中v-for指令提示錯誤的解決辦法

最近在做一個Vue專案,在其中用到v-for指令時,發現Vs Code報錯,如下圖(程式碼是沒有任何問題的),在網上找了一下解決辦法,希望能幫助到更多人。解決方法:開啟    檔案-首選項-設定將如下程

Vue中v-for指令中的key遇到的問題

v-for 給了兩個引數key和index,但是這裡需要對遍歷的資料區別對待。遍歷的資料包括陣列和物件,但是在陣列下是沒有key值的,而在物件下可以得到key,可以顯示出來<divid="app">        <ul>            <

vue v-for指令

<div id="app4"> <ol> <ul> <li v-for="zhi_es

Vue中的v-for指令不起效果

我的程式碼之前類似下面的結構 <div id="example-1" v-for="item in items"> <ul> <li> {{ item.message }}

Vue2.5入門——v-if,v-show與v-for指令

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <ti

使用v-for指令渲染列表

div 遍歷 charset ide style title none 遍歷數組 code v-for:對集合或對象進行遍歷; 使用v-for對數組遍歷時: 效果如下: 代碼: <script> window.on

Atitit 程式設計 序列化技術點 概念原理v2 1. 序列化 1 2. 序列化的目的 1 2.1. 為了傳輸 或者儲存 1 3. 應用場合 1 3.1. Form提交url 1 3.2. For

Atitit 程式設計 序列化技術點 概念原理v2   1. 序列化: 1 2. 序列化的目的 1 2.1. 為了傳輸 或者儲存 1 3. 應用場合 1 3.1. Form提交url 1 3.2. Form提交為 json物件,適合後端物件解析 1

vue——3-v-for

<div id="enjoy"> <!--類似於js遍歷--> <!--v-for優先順序高於v-if之類的指令--> <p v-for

VueJS的使用-如何在v-for迴圈中輸出值給標籤的屬性

   最近在學習使用VueJS,在學習的過程中,遇到一個問題:如何給標籤中的屬性進行賦值,如:input標籤的value,在迴圈輸入的過程,可以直接使用:value,如以下程式碼: <!DOCTYPE html> <html lang="en"&

指令週期CPU---算術操作指令(1)---簡單算術操作指令的實現

程式碼放在github上 在之前實現的基礎上繼續增加了15條簡單算術操作指令(add、addi、addiu、addu、sub、subu、clo、clz、slt、slti、sltiu、sltu、mul、mult、multu) 之前操作的傳送門: 單指令週期o

Vuejs(14)——在v-for中,利用index來對第一項新增class

<aclass="list-group-item":class="{'active':!index}"v-for="(i,index) in announcement"> index來源於v-for,i表示遍歷的陣列的元素,index表示索引。 由於index從0開始,因此如果要

C#復習筆記(3)--C#2解決C#1的問題(進入快速通道的委托)

包含 問題 道理 一次 簡化 linq base 啟動 外部 委托 前言:C#1中就已經有了委托的概念,但是其繁雜的用法並沒有引起開發者太多的關註,在C#2中,進行了一些編譯器上的優化,可以用匿名方法來創建一個委托。同時,還支持的方法組和委托的轉換。順便的,C#2中增加了委