有時候咱們要根據數據的狀況,決定標籤是否進行顯示或者有其餘動做。最多見的就是,表格渲染的時候,若是表格沒有數據,就顯示無數據。若是有數據就顯示錶格數據。 Vue幫咱們提供了一個v-if
的指令,幫助咱們完成判斷的模板處理。html
<div id="app"> <h1 v-if="ok">Yes</h1> <h1 v-else>No</h1> </div> <!-- 當ok爲true的時候,輸出: Yes, 不然輸出: No --> <script> var app = new Vue({ el: '#app', data: { ok: true // true,返回:Yes, false=> No } }); </script>
v-if
指令能夠根據數據綁定的狀況進行插入標籤或者移除標籤。 固然,若是熟悉js的都清楚,有if,確定會有else。 Vue提供的是 v-else
指令。vue
模板引擎都會提供循環的支持。Vue也不例外,Vue是提供了一個v-for
指令。基本的用法相似於foreach的用法。仍是看例子最直接,上代碼:git
<div id="app"> <table> <thead> <tr> <th>姓名</th> <th>年齡</th> <th>地址</th> </tr> </thead> <tbody> <!-- 每次for循環,都會建立一個tr標籤。item是遍歷的元素。 --> <tr v-for="item in UserList" > <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.address }}</td> </tr> </tbody> </table> </div> <script> var app = new Vue({ el: '#app', data: { UserList: [ {'name': 'malun', 'age': 18, 'address': '北京黑地下室'}, {'name': 'flydragon', 'age': 22, 'address': '廈門的不少熱的地方'}, {'name': 'temp', 'age': 25, 'address': '東北松花江上'} ] } }); </script>
上面的例子,咱們演示的是 每次循環輸出一個tr標籤。若是咱們但願每次循環生成兩個tr標籤呢?若是還有生成其餘的標籤呢?github
Vue給咱們提供了template標籤,供咱們用於v-for循環中進行處理。數組
上代碼嘍:app
<ul> <!-- 經過template標籤,能夠一次循環,輸出兩個li標籤 --> <template v-for="item in items"> <li>{{ item.msg }}</li> <li class="divider"></li> </template> </ul>
因爲Vue的機制就是檢測數據的變化,自動跟新HTML。數組的變化,Vue之檢測部分函數,檢測的函數執行時纔會觸發視圖更新。這些方法以下:ide
下面是一個綜合的案例,每秒鐘往表格中添加一條數據。 本案例綜合使用了v-if 和 v-for循環綜合案例。函數
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vue入門之動態顯示錶格</title> <script src="https://unpkg.com/vue/dist/vue.js"></script> </head> <body> <div id="app"> <table> <thead> <tr> <th>姓名</th> <th>年齡</th> <th>地址</th> </tr> </thead> <!-- 若是列表有數據,直接輸出表格數據,沒有數據提示用戶沒有數據 --> <tbody v-if="UserList.length > 0"> <tr v-for="item in UserList" > <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.address }}</td> </tr> </tbody> <tbody v-else> <tr><td colspan="3">沒有數據奧!</td></tr> </tbody> </table> </div> <script> var app = new Vue({ el: '#app', data: { UserList: [] } }); // 每秒鐘插入一條數據。 setInterval(function () { app.UserList.push({'name': 'malun', 'age': 18, 'address': '北京黑地下室'}); }, 1000); </script> </body> </html>
列表的使用其實本質仍是js的衍生使用,對於有js開發基礎的沒有什麼難度。關鍵是多寫幾個案例就會詳細通了。spa
Github地址:源碼下載
其餘詳情請參考:http://aicoder.com/vue/preview/all.htmlcode