70 lines
1.7 KiB
HTML
70 lines
1.7 KiB
HTML
<!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>
|
|
</head>
|
|
<body>
|
|
<div class="app">
|
|
<swiper :list="imgList">
|
|
<template v-slot:default="{ data: a }">
|
|
<img :src="a" alt="">
|
|
</template>
|
|
</swiper>
|
|
<hr>
|
|
<swiper :list="newsList">
|
|
<template v-slot:default="{ data: a }">
|
|
<p>{{ a.title }}</p>
|
|
</template>
|
|
</swiper>
|
|
</div>
|
|
</body>
|
|
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
|
|
<script>
|
|
|
|
Vue.component("swiper", {
|
|
template: `
|
|
<div class="swiper">
|
|
<div class="swiper-silder" v-for="(item,index) in list" :key="index">
|
|
<slot :data="item"></slot>
|
|
</div>
|
|
</div>
|
|
`,
|
|
props: {
|
|
list: {
|
|
type: Array,
|
|
default: () => []
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
|
|
}
|
|
},
|
|
methods: {
|
|
|
|
}
|
|
});
|
|
|
|
|
|
new Vue({
|
|
el: '.app',
|
|
data: {
|
|
imgList: [
|
|
'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png',
|
|
'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png'
|
|
],
|
|
newsList: [
|
|
{ id: 1, title: '热点1' },
|
|
{ id: 2, title: '热点2' },
|
|
{ id: 3, title: '热点3' },
|
|
]
|
|
},
|
|
methods: {
|
|
|
|
}
|
|
})
|
|
</script>
|
|
</html> |