前端基础-vue(条件循环)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41442781/article/details/89677429

HTML部分

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>vue条件循环语句</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>

<body>
<div class="tiaojian"><!--声明3个p标签,通过计算不让他们3个同时显示-->
   <p v-if="shu>10">还有{{shu}}个资源</p><!--创建一个v-if,如果值为true,就显示,如果为flase就不显示此标签-->
   <p v-else-if="shu<=10&&shu>=1">快没资源了</p><!--v-if是把不需要的标签直接去掉,而不是隐藏起来-->
   <p v-else>已经没资源了</p>
   <template v-if="show"><!--这个标签既可以把多个标签包含在一起,又不会改变dom节点,审查元素看不到这个标签-->
     <p>我是第一个p</p>
     <p>我是第二个p</p>
   </template>
   <p v-show="true">我用的是v-show属性,v-show没有把dom节点去掉,而是隐藏起来,display="none"</p>
</div>

<div class="xunhuan">
  <!--遍历一个数组里面的数据-->
  <ul>
    <li v-for="xianshi in liebiao">{{xianshi.name}}|{{xianshi.age}}岁</li><!--类似于for in循环,把数据拿出来,xianshi是自定义的,被循环的数据可以是一个对象也可以是一个数,如10,它会打印1-10,也可以是一个字符串,它会挨个打印每一个字符-->
    <li v-for="(xianshi,i) in liebiao">{{i}}</li><!--显示列表索引的方法-->
  </ul>
  <!--遍历一个对象里面属性名和属性值和索引的数据,value是自定义的-->
  <p v-for="(value,prop,index) in duixiang">{{value}}|{{prop}}|{{index}} </p>
  <!--点击按钮就增加一个dom节点-->
  <button @click="add">增加一个dom节点</button>
  
</div>
<script src="../js/vue-5.js"></script>
</body>
</html>

js部分

new Vue({
    el:".tiaojian",
    data:{
        shu:20,
        show:true,
    }    
})

new Vue({
    el:".xunhuan",
    data:{
        liebiao:[
            {
            name:"小红1号",
            age:22,
            },
            {
            name:"小红2号",
            age:23,
            },
            {
            name:"小红3号",
            age:24,
            },
        ],
        duixiang:{
            name:"zhb",
            age:22,
            sex:"男",
        }
    },
    methods:{
        add:function(){
            this.liebiao.push({//vue重写了push方法,可以直接push数组元素
                name:"小红x号",
                age:100,
            })
                
        },    
    }
})

小测试:

html部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
    <input @input="changetype"/>
        <p v-if="password.length>8">你的密码大于8位啦</p>
        <p v-else-if="password.length <= 8 && password.length > 0">请输入一个更长的密码</p>
        <p v-else>请输入你的密码</p>
        <ol>
            <li v-for="item in cate" :key="item.name">
                {{ item.name }}
                <ul>
                    <li v-for="sub in item.sub" :key="sub">{{ sub }}</li>
                </ul>
            </li>
        </ol>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                password: '',
                cate: [{
                    name: 'js', sub: ['vue','jq','react']
                },{
                    name: 'Databases', sub: ['Mysql','Oracle','MongoDB']
                },{
                    name: 'os', sub: ['macOS','Windows','Linux']
                }]
            },
            methods:{
                changetype:function(e){
                    this.password=e.target.value;
                    }
            }
        })
    </script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_41442781/article/details/89677429