web前端框架vue条件判断v-if和循环v-for

2019-12-25  本文已影响0人  雨中晨星

vue的分支结构:
v-if,v-else,v-else-if,v-show
可以通过一个简单的成绩案例来演示
样式部分:

<div id="app">
      <div v-if='score>=90'>优秀</div>
      <div v-else-if='score<90&&score>=80'>良好</div>
      <div v-else-if='score<80&&score>=70'>一般</div>
      <div v-else>比较差</div>
      <div v-show='flag'>测试v-show</div>
      <button v-on:click='handle'>点击切换显示</button>
    </div>

逻辑部分:

var vm = new Vue({
        el: '#app',
        data: {
          score: 70,
          flag: false
        },
        methods: {
         handle:function(){
          this.flag = !this.flag;
         }
        }
      });

代码分析:当分数在不同的分段时,显示的结果也不一样,v-if控制元素是否渲染到页面,v-show控制元素是否显示(元素已经渲染到页面),函数handle控制按钮切换v-show显示和隐藏

循环结构v-for
样式部分:

<div>水果列表</div>
      <ul>
        <li v-for='item in fruits'>{{item}}</li>
        <li v-for='(item, index) in fruits'>{{item + '---' +index}}</li>
        <li :key='item.id' v-for='(item, index) in myFruits'>
        <span>{{item.ename}}</span>
        <span>-----</span>
        <span>{{item.cname}}</span>
        </li>
      </ul>

逻辑部分:

 var vm = new Vue({
        el: '#app',
        data: {
          fruits: ['apple','orange','banana'],
          myFruits: [{
            id:1,
            ename: 'apple',
            cname: '苹果'},
            {
            id:2,
            ename: 'orange',
            cname: '橙子'},
            {
            id:3,
            ename: 'banana',
            cname: '香蕉'}]
        },
        methods: {
          
        }
      });

代码分析:有一个简单的数组fruits和有一个对象数组myFruits,循环fruits直接使用v-for='item in fruits',然后使用插值表达式{{item}}显示出循环渲染的结果。
使用v-for='(item, index) in fruits',可以显示出数组的索引号。
循环对象数组的时候,插值表达式需要使用{{item.ename}}和{{item.cname}},分别把英文名和中文名都渲染出来。
使用:key和唯一标识id可以提供vue的性能,但是对项目本身没有任何影响。

v-for可以循环遍历对象
样式部分:

<div id="app">
      <div v-for='(value, key, index) in obj'>{{value + '---' + key + '----' + index}}</div>
      <!-- value属性的值,key属性的名字,index属性的索引号 -->
    </div>

逻辑部分:

/*原生JS的循环对象的方法*/
     var obj = {
      uname: 'lisi',
      age: 12,
      gender: 'male'
     }
     for(var key in obj){
      console.log(key, obj[key])
     }
     /*v-for循环遍历对象的方法*/
      var vm = new Vue({
       el:'#app',
       data: {
          obj: {
          uname: 'lisi',
          age: 12,
          gender: 'male'
          }
       }
      });
上一篇 下一篇

猜你喜欢

热点阅读