• 2021年4月25日


    时间:3个小时左右

    代码:300行左右

    博客:1

    知识点:vue的分支结构、循环结构、

    v-if 使用场景

    1- 多个元素 通过条件判断展示或者隐藏某个元素。或者多个元素 4

    2- 进行两个视图之间的切换

    <div id="app">
    <!-- 判断是否加载,如果为真,就加载,否则不加载-->
    <span v-if="flag">
    如果flag为true则显示,false不显示!
    </span>
    </div>
    <script>
    var vm = new Vue({
    el:"#app",
    data:{
    flag:true
    }
    })
    </script>
    ----------------------------------------------------------
    <div v-if="type === 'A'">
    A
    </div>
    <!-- v-else-if紧跟在v-if或v-else-if之后 表示v-if条件不成立时执行-->
    <div v-else-if="type === 'B'">
    B
    </div>
    <div v-else-if="type === 'C'">
    C
    </div>
    <!-- v-else紧跟在v-if或v-else-if之后-->
    <div v-else>
    Not A/B/C
    </div>
    <script>
    new Vue({
    el: '#app',
    data: {
    type: 'C'
    }
    })
    </script>

    v-show 和 v-if的区别 :

    v-show本质就是标签display设置为none,控制隐藏 v-show只编译一次,后面其实就是控制css,而v-if不停的销毁和创建,故v-show性能更好一点。

    v-if是动态的向DOM树内添加或者删除DOM元素 v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件。

    2.循环结构 v-for

    用于循环的数组里面的值可以是对象,也可以是普通元素

    <ul id="example-1">
    <!-- 循环结构-遍历数组
    item 是我们自己定义的一个名字 代表数组里面的每一项
    items对应的是 data中的数组-->
    <li v-for="item in items">
    {{ item.message }}
    </li>
    </ul>
    <script>
    new Vue({
    el: '#example-1',
    data: {
    items: [
    { message: 'Foo' },
    { message: 'Bar' }
    ],
    }
    })
    </script>

    不推荐同时使用 v-if 和 v-for

    当 v-if 与 v-for 一起使用时, v-for 具有比 v-if 更高的优先级。

    <!-- 循环结构-遍历对象
    v 代表 对象的value
    k 代表对象的 键
    i 代表索引
    --->
    <div v-if='v==13' v-for='(v,k,i) in obj'>{{v + '---' + k + '---' + i}}</div>
    <script>
    new Vue({
    el: '#example-1',
    data: {
    items: [
    { message: 'Foo' },
    { message: 'Bar' }
    ],
    obj: {
    uname: 'zhangsan',
    age: 13,
    gender: 'female'
    }
    }
    })
    </script>

    key 的作用 :

    key来给每个节点做一个唯一标识 key的作用主要是为了高效的更新虚拟DOM

    分支结构:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      
    </head>
    <body>
      <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>60'>一般</div>
        <div v-else>比较差</div>
        <div v-show='flag'>测试v-show</div>
        <button v-on:click='handle'>点击</button>
      </div>
      <script type="text/javascript" src="js/vue.js"></script>
      <script type="text/javascript">
        /*
          分支结构
    
          v-show的原理:控制元素样式是否显示 display:none
        */
        var vm = new Vue({
          el: '#app',
          data: {
            score: 10,
            flag: false
          },
          methods: {
            handle: function(){
              this.flag = !this.flag;
            }
          }
        });
      </script>
    </body>
    </html>

    循环结构:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      
    </head>
    <body>
      <div id="app">
        <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>
      </div>
      <script type="text/javascript" src="js/vue.js"></script>
      <script type="text/javascript">
        /*
          循环结构-遍历数组
        */
        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: '香蕉'
            }]
          }
        });
      </script>
    </body>
    </html>

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      
    </head>
    <body>
      <div id="app">
        <div v-if='v==13' v-for='(v,k,i) in obj'>{{v + '---' + k + '---' + i}}</div>
      </div>
      <script type="text/javascript" src="js/vue.js"></script>
      <script type="text/javascript">
        // 使用原生js遍历对象
        var obj = {
          uname: 'lisi',
          age: 12,
          gender: 'male'
        }
        for(var key in obj) {
          console.log(key, obj[key])
        }
        /*
          循环结构
        */
        var vm = new Vue({
          el: '#app',
          data: {
            obj: {
              uname: 'zhangsan',
              age: 13,
              gender: 'female'
            }
          }
        });
      </script>
    </body>
    </html>
  • 相关阅读:
    idea资源导出失败的问题
    计算机的运算方法
    ajax返回json字符串,前端显示中文乱码问题解决
    解决xml编码问题:1 字节的 UTF8 序列的字节 1 无效
    【转】erlang四种监控策略one_for_one、one_for_all、simple_one_for_one、rest_for_one
    erlang:register and global:register_name
    【转】重点介绍erlang的global模块
    memset函数用法
    简单实现SQL Server 2012高可用性组
    《mysql必知必会》读书笔记游标的使用
  • 原文地址:https://www.cnblogs.com/j-y-s/p/14903295.html
Copyright © 2020-2023  润新知