Vue——流程控制

在进行数据绑定的时候,可能会考虑这个问题:如果数据是数组怎么办?

这里介绍vue的模版引擎的特点,允许在数据渲染的时候,加入一些复杂的运算逻辑。

vue的流程控制语法只有2个:“for循环” 和 “if判断”。

条件判断

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Vue 测试实例</title>
    <script src="res/vue.js"></script>
</head>
<body>
<div id="app">
    <!--如果需要频繁显示隐藏,那么直接使用show-->
    <h5 v-show="ok">Hello!</h5>
    <h5 v-show="false">Hello!</h5>
    <!--if...else-->
    <div v-if="type === 'A'">
        A
    </div>
    <div v-else-if="type === 'B'">
        B
    </div>
    <div v-else>
        Not A/B
    </div>
</div>

<script>
    new Vue({
        el: '#app',
        data: {
            ok: true,
            type: 'C'
        }
    })
</script>
</body>
</html>

循环控制

使用v-for语句可以实现数组和对象属性的遍历。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 测试实例</title>
    <script src="res/vue.js"></script>
</head>
<body>
<div id="app">
    <ul>
        <!--遍历数组-->
        <template v-for="item in list">
            <li>{{ item.name }}</li>
        </template>
        <br/>
        <!--遍历数组-->
        <template v-for="item in [
                { name: 'Runoob' },
                { name: 'Google' },
                { name: 'Taobao' }]">
            <li>{{ item.name }}</li>
        </template>
        <br/>
        <!--遍历对象属性-->
        <template v-for="(value, key) in map">
            <li>{{key}}&nbsp;:&nbsp;{{value}}</li>
        </template>
        <br/>
        <!--简单地实现while循环-->
        <template v-for="n in 10">{{n}}</template>
    </ul>
</div>

<script>
    new Vue({
        el: '#app',
        data: {
            list: [
                {name: 'Runoob'},
                {name: 'Google'},
                {name: 'Taobao'}
            ],
            map: {
                name: 'xiaoming',
                age: '30'
            }
        }
    })
</script>
</body>
</html>

不仅仅在vue上,其它的模版引擎也会具备类似的语法,下面是layui的模版语法,大家可以根据自己熟悉的,去类比学习。

<script id="demo" type="text/html">
  <h3>{{ d.title }}</h3>
  <ul>
  {{#  layui.each(d.list, function(index, item){ }}
    <li>
      <span>{{ item.modname }}</span>
    </li>
  {{#  }); }}
  {{#  if(d.list.length === 0){ }}
    无数据
  {{#  } }} 
  </ul>
</script>
原文地址:https://www.cnblogs.com/chenss15060100790/p/8597547.html