zoukankan      html  css  js  c++  java
  • Vue小练习 03

    """
    1、有以下广告数据(实际数据命名可以略做调整)
    ad_data = {
    		tv: [
                    {img: 'img/tv/tv1.jpg', title: 'tv1'},
                    {img: 'img/tv/tv2.jpg', title: 'tv2'},
                    {img: 'img/tv/tv3.jpg', title: 'tv3'},
                    {img: 'img/tv/tv4.jpg', title: 'tv4'},
                ],
                phone: [
                    {img: 'img/phone/phone1.jpg', title: 'phone1'},
                    {img: 'img/phone/phone2.jpg', title: 'phone2'},
                    {img: 'img/phone/phone3.jpg', title: 'phone3'},
                    {img: 'img/phone/phone4.jpg', title: 'phone4'},
                ]
    	
    }
    
    i) 有两个大标题,电视和手机,点击对应的标题,渲染对应的数据
    ii) 一个字典作为一个显示单位,定义一个子组件进行渲染(涉及父子组件传参)
    
    2、在第1题基础上,页面最下方有一个 h2 标签,用来渲染用户当前选择的广告(点击哪个广告就是选中哪个广告)
    i)当没有点击任何广告,h2 标签显示:未选中任何广告
    ii)当点击其中一个广告,如tv1,h2 标签显示:tv1被选中
    """
    
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>作业1</title>
        <style>
            body, h2 {
                margin: 0;
            }
            .wrap {
                 880px;
                margin: 0 auto;
            }
            .wrap:after {
                content: '';
                display: block;
                clear: both;
            }
            .box {
                 200px;
                border-radius: 10px;
                overflow: hidden;
                background-color: grey;
                float: left;
                margin: 10px;
            }
            .box img {
                 100%;
            }
            .box h2 {
                text-align: center;
                font-weight: normal;
                font-size: 20%;
            }
             button {
                margin: 10px;
            }
        </style>
    </head>
    <body>
    <div id="d1">
        
        <div class="wrap">
           	<button @click="ad_arr = ad_data.tv">电视</button>
        	<button @click="ad_arr = ad_data.phone">手机</button>
    
            <local-tag v-for="ad in ad_arr" :ad="ad"></local-tag>
        </div>
    </div>
    
    <script src="vue/vue.js"></script>
    <script>
        let localTag = {
            props: ['ad'],
            template: `
            <div class="box">
            <img :src="ad.img" alt="">
            <h2>{{ ad.title }}</h2>
            </div>
            `
        };
    
        ad_data = {
            tv: [
                {img: 'img/tv/tv1.jpg', title: 'tv1'},
                {img: 'img/tv/tv2.jpg', title: 'tv2'},
                {img: 'img/tv/tv3.jpg', title: 'tv3'},
                {img: 'img/tv/tv4.jpg', title: 'tv4'},
            ],
            phone: [
                {img: 'img/phone/phone1.jpg', title: 'phone1'},
                {img: 'img/phone/phone2.jpg', title: 'phone2'},
                {img: 'img/phone/phone3.jpg', title: 'phone3'},
                {img: 'img/phone/phone4.jpg', title: 'phone4'},
            ]
        };
    
        new Vue({
            el: '#d1',
            data: {
                ad_data,
                ad_arr: '',
            },
            components: {
                localTag
            },
        })
    </script>
    </body>
    </html>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>作业2</title>
        <style>
            body, h2 {
                margin: 0;
            }
    
            .wrap {
                 880px;
                margin: 0 auto;
            }
    
            .wrap:after {
                content: '';
                display: block;
                clear: both;
            }
    
            .box {
                 200px;
                border-radius: 10px;
                overflow: hidden;
                background-color: grey;
                float: left;
                margin: 10px;
            }
    
            .box img {
                 100%;
            }
    
            h2 {
                text-align: center;
                font-weight: normal;
                font-size: 20px;
            }
            button {
                margin: 10px;
            }
        </style>
    </head>
    <body>
    <div id="d1">
        <div class="wrap">
            <p>
                <button @click="ad_arr=ad_data.tv; v1='当前未选择任何商品'">电视</button>
                <button @click="ad_arr=ad_data.phone; v1='当前未选择任何商品'">手机</button>
            </p>
            
            <local-tag v-for="ad in ad_arr" :ad="ad" @action="actionFn"></local-tag>
        </div>
        <h2>{{ v1 }}</h2>
    </div>
    
    <script src="vue/vue.js"></script>
    <script>
        let localTag = {
            props: ['ad'],
            template: `
            <div class="box" @click="clickFn">
            <img :src="ad.img" alt="">
            <h2>{{ ad.title }}</h2>
            </div>
            `,
            data() {
                return {
                    ad_title: '',
                }
            },
            methods: {
                clickFn() {
                    this.$emit('action', this.ad.title)
                }
            }
        };
    
        ad_data = {
            tv: [
                {img: 'img/tv/tv1.jpg', title: 'tv1'},
                {img: 'img/tv/tv2.jpg', title: 'tv2'},
                {img: 'img/tv/tv3.jpg', title: 'tv3'},
                {img: 'img/tv/tv4.jpg', title: 'tv4'},
            ],
            phone: [
                {img: 'img/phone/phone1.jpg', title: 'phone1'},
                {img: 'img/phone/phone2.jpg', title: 'phone2'},
                {img: 'img/phone/phone3.jpg', title: 'phone3'},
                {img: 'img/phone/phone4.jpg', title: 'phone4'},
            ]
        };
    
        new Vue({
            el: '#d1',
            data: {
                ad_data,
                ad_arr: '',
                v1: '当前未选择任何广告',
            },
            components: {
                localTag
            },
            methods: {
                actionFn(ad_title) {
                    this.v1 = ad_title + '被选中';
                }
            }
        })
    </script>
    </body>
    </html>
    
  • 相关阅读:
    hdoj1251 统计难题 字典树
    nyoj322 sort 归并排序,树状数组
    优先队列 如何使用
    字典树(讲解+模版)
    hdoj1069 Monkey and Banana
    ny10 skilng
    hdoj1075 What Are You Talking About
    hdoj1171 Big Event in HDU
    ny613 免费馅饼
    Spring Boot2.0之Admin-UI分布式微服务监控中心
  • 原文地址:https://www.cnblogs.com/bigb/p/12064143.html
Copyright © 2011-2022 走看看