VUE前端应用开发课程实验------实验二

一、实验内容:

        (1)使用条件渲染指令(v-if、v-show)指令实现图片的隐藏和显示控制

       (2)学会使用循环渲染指令,实现电影票房排序,代办事项记录功能

二、实验流程:

        (1)点击按钮控制图片的显示和隐藏,同时按钮的文字发生响应改变

        (2)实现电影票房排序和按原始顺序进行反转

        (3)完成代办事项记录,在输入框输入你的代办事项,点击“添加按钮”,则进入未完成项列表中,同时数量增加,点击未完成项中的“删除按钮”,该事项则进入已完成列表,同时数量增加。

三、实验源码 :

        (1)点击按钮控制图片的显示和隐藏,同时按钮的文字发生响应改变

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>切换图片显示与隐藏</title>
    <script src="vue.js"></script>
</head>
<body>
   <div id="box">
     <input type="button" :value="text" v-on:click="change">
     <button v-show="show" >
             <img src="镇北堡西部影城.jpg" alt="" style="width: 500px;height: 300px;">
     </button>
       
   </div>

   <script type="text/javascript">
    new Vue({
        el: '#box',
        data:{
            text: '隐藏图片',
            show:true
        },
        methods: {
            change(){
                this.text === '隐藏图片'? this.text='显示图片' : this.text ='隐藏图片'
                this.show = ! this.show
            }

        },
    })
    
   </script>
</body>
</html>

        (2)实现电影票房排序和按原始顺序进行反转

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>循环渲染中数组排序反转</title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="box">
        <table  border="1">
            <tr>
                <td>电源名称</td>
                <td>电影票房(单位:亿)</td>
            </tr>
            <tr v-for="(items,index) in movies">
                <td>{{items.name}}</td>
                <td>{{items.num}}</td>
            </tr>
           </table><br>
           <button @click="sortMovie">按票房排序</button>
           <button @click="reverseMovie">反转</button>
        
    </div>
   
   <script>
    new Vue({
        el:'#box',
        data:{
            movies:[
                {name:"红海行动",num:30},
                {name:"西红柿首富",num:10},
                {name:"狙击手",num:20},
            ]
        },
        methods: {
            sortMovie(){
                this.movies.sort(function(a,b){
                    var x=a.num;
                    var y=b.num;
                    return (x>y)? -1:1;
                })
            },
            reverseMovie(){
                this.movies.reverse();
            }
        },
    })
   </script>
</body>
</html>

        (3)完成代办事项记录,在输入框输入你的代办事项,点击“添加按钮”,则进入未完成项列表中,同时数量增加,点击未完成项中的“删除按钮”,该事项则进入已完成列表,同时数量增加。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>完成代办事项</title>
    <script src="vue.js"></script>
</head>
<body>
   <div id="app">
    <h2>最近完成的计划</h2>
    <input type="text" v-model="inputValue" >
    <button @click="add">添加</button>
    
    <p>未完成{{nofintotal}}项目</p>
    <ul>
        <li v-for="(item,index) in plans " :key='index' v-if="!item.isok" >{{index+1}}.{{item.text}}
            <input type="checkbox" v-model="item.isok" @click="dj(index)">
            <button @click="del(index)">删除</button>
        </li>
    </ul>
    <p>已完成{{fintotal}}项目</p>
    <ul >
        <li v-for="(item,index) in dolist" :key="index" v-if="item.isok">
           {{index+1}}.{{item.text}}
            <input type="checkbox" v-model="item.isok"  />
        </li>
    </ul>
   </div>

   <script type="text/javascript">
     new Vue({
        el:'#app',
        data(){
            return {
                plans:[ ],
                dolist:[],
                inputValue:'',
            }
        },
        computed:{
            nofintotal(){
                var plansl =0
                var dolistl =0
               for(i in this.plans){
                 plansl= this.plans.length;
                 }
               for(i in this.dolist){
                 dolistl = this.dolist.length;
               }

               return plansl-dolistl;
            },
        
            fintotal(){
                for(i in this.dolist){
                    return this.dolist.length
                }
            }
        },
        methods: {
            add(index){
                var text =this.inputValue;
              this.plans.push({text:text,isok:false});
              this.inputValue= '';
            },
            del(index){
              this.plans.splice(index,1);
            },
            dj(index){
                  
                this.dolist.push(this.plans[index])               
            }
           
        },
     })

   </script>
</body>
</html>

 四、运行截图:

 (1)

 (2)

 (3)

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值