day69work-Vue组件
要求:
1.点击标题渲染不同的数据;
2.点击不同标题,底部标题显示不同信息;未选中时,显示’未选中‘
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
<script src="vue/vue.min.js"></script>
<style>
.wrap {
width: 880px;
height: 240px;
}
.wrap:after {
content: '';
display: block;
clear: both;
}
.box {
width: 200px;
height: 200px;
float: left;
}
.box img {
width: 200px;
height: 240px;
}
</style>
</head>
<body>
<div id="app">
<div class="wrap">
<h1 @click="choiceH('a')">头像</h1>
<h1 @click="choiceH('d')">狗头</h1>
<tag v-for="dog in pics" :dog="dog" @action="actionImg" v-if="choice == 'd'" ></tag>
<tag v-for="dog in avas" :dog="dog" @action="actionImg" v-else-if="choice == 'a'" ></tag>
</div>
<div> <!--第二题附加-->
<h2 v-model="h2">{{ h2 }}</h2>
</div>
</div>
</body>
<script>
let dogs = [
{
img: 'img/dog/dog1.jpg',
title: '狗1'
},
{
img: 'img/dog/dog2.jpg',
title: '狗2'
},
{
img: 'img/dog/dog3.jpg',
title: '狗3'
},
{
img: 'img/dog/dog4.jpg',
title: '狗4'
},
];
let avas = [
{
img: 'img/ava/111.jpg',
title: '图1'
},
{
img: 'img/ava/222.jpg',
title: '图2'
},
{
img: 'img/ava/333.jpg',
title: '图3'
},
{
img: 'img/ava/444.jpg',
title: '图4'
},
]
let tag = {
props: ['dog',],
template: `
<div class="box">
<img :src="dog.img" @click="clickI(dog.title)">
</div>
`,
data() {
return {}
},
methods:{
clickI(a){
this.$emit('action',a)
}
}
};
new Vue({
el: '#app',
data: {
pics: dogs,
avas,
choice: '',
h2: '未选中'
},
components: {
tag,
},
methods: {
choiceH(choice) {
if (choice == 'd') {
this.pics = dogs;
this.h2 = '选中狗头' // 第二题附加
} else {
this.pics = avas;
this.h2 = '选中头像' // 第二题附加
}
this.choice = choice
},
actionImg(a){
this.h2 = a
}
}
})
</script>
</html>
浙公网安备 33010602011771号