美文网首页
vue笔记-04(vue的控制流程语法)

vue笔记-04(vue的控制流程语法)

作者: 7ColorLotus | 来源:发表于2020-05-10 00:48 被阅读0次

    v-for指令

    • 迭代数组
      • 遍历对象:遍历对象身上的键值对的时候,除了有val key ,在第三个位置还有一个索引
      • 迭代数字:遍历从1开始
      • in 后可以放 普通数组,对象数组,对象,数字
      • key属性的使用
        1. key属性只能使用string/number
        2. key在使用的时候,必须使用v-bind属性绑定的形式,指定key的值
      • 在组件中,使用v-for循环的时候,或者在一些特殊情况中,如果v-for有问题,必须在使用v-for的同时,指定唯一的字符串/数字作为key
      • 代码示例
    <!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 src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    </head>
    <body>
        <!-- 迭代数字 -->
        <!-- <div id="app">
            <p v-for="count in 10">{{ count }}</p>
        </div> -->
    
        <!-- 迭代对象数组 -->
        <div id="app">
            <input type="text" :value="id" v-model="id">
            <input type="text" :value="name" v-model="name">
            <input type="button" value="添加" @click="addStu">
            <p v-for="stu,index in students" :key="stu.id">
               <input type="checkbox" > {{ index }} ------ {{ stu.id }} -------- {{ stu.name }}
            </p>
        </div>
    
        <!-- 迭代对象 -->
        <!-- <div id="app">
            <p v-for="val,key in student">{{ key }} -------- {{ val }}</p>
        </div> -->
        
        <script>
            var vm = new Vue({
                el : '#app',
                data : {
                    id: '',
                    name: '',
                    students : [
                        {id : 1, name : 'zhangsan'},
                        {id : 2, name : 'lisi'},
                        {id : 3, name : 'wangwu'}
                    ],
                    student : { 
                        id : 1,
                        name : 'zhangsan'
                    }
                },
                methods: {
                    addStu(){
                        // this.students.push({ id: this.id, name: this.name });
                        this.students.unshift({ id: this.id, name: this.name });
                    }
                }
    
            })
        </script>
    </body>
    </html>
    

    v-if和v-show指令的使用

    • v-if :每次都会重新删除或创建元素
    • v-show: 每次不会重新进行DOM的删除和创建操作,只是切换了元素的display:none样式
    • v-if有较高的切换性能消耗,v-show有较高的初始渲染消耗
    • 如果元素涉及到频繁的切换,最好不要使用v-if,推荐使用v-show。如果元素可能永远也不会被显示出来被用户看到则推荐使用v-if
    • 代码示例
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>v-if和v-show</title>
        <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    </head>
    <body>
        <div id="app">
            <input type="button" value="切换" @click="flag = !flag">
    
            <div v-show="flag">
                show内容显示
            </div>
            <p></p>
            <p></p>
            <p></p>
            <div v-if="flag">
                if内容显示
            </div>
        </div>
        <script>
            var vm = new Vue({
                el: "#app",
                data:{
                    flag : true
                }
            })
        </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:vue笔记-04(vue的控制流程语法)

          本文链接:https://www.haomeiwen.com/subject/kbwrnhtx.html