还是没找到问题
源码因为已经写到后面的阶段了,所以无法比对
还是麻烦老师了
home/index.vue
----------------------------------------------------------------------------------
<template>
<div class="home">
<div class="g-header-container">
<home-header></home-header>
</div>
<div>
<home-slider></home-slider>
</div>
<div class="g-backTop-container"></div>
<router-view></router-view>
</div>
</template>
<script>
import HomeHeader from './header';
import HomeSlider from './slider';
export default {
name: 'Home',
components: {
HomeHeader,
HomeSlider
}
};
</script>
<style lang="scss" scoped>
@import '~assets/scss/mixins';
.home {
overflow:hidden;
width: 100%;
height: 100%;
background-color:$bgc-theme;
}
</style>
base/slider.vue
----------------------------------------------------------------------------------
<!-- home-slider业务组件 -->
<template>
<me-slider
:direction="direction"
:loop = true
:interval = "interval"
:pagination = "pagination"
>
<swiper-slide
v-for="(item ,index) in sliders"
:key="index"
>
<a :href="item.linkUrl" class="slider-link">
<img :src="item.picUrl" class="slier-img" alt="">
</a>
</swiper-slide>
</me-slider>
</template>
<script>
/* 引入基础组件 */
import MeSlider from 'base/slider';
import swiperSlider from 'vue-awesome-swiper';
export default {
name: 'HomeSlider',
components: {
MeSlider,
swiperSlider
},
data() {
return {
direction: 'vertical',
loop: false,
interval: 0,
pagination: false,
sliders: [
{
'linkUrl': 'https://www.imooc.com',
'picUrl': require('./1.jpg')
},
{
'linkUrl': 'https://www.imooc.com',
'picUrl': require('./2.jpg')
},
{
'linkUrl': 'https://www.imooc.com',
'picUrl': require('./3.jpg')
},
{
'linkUrl': 'https://www.imooc.com',
'picUrl': require('./4.jpg')
}
]
};
}
};
</script>
<style scoped>
</style>
slider/index.vue
---------------------------------------------------------------------------------------------
<!-- slider基础组件 -->
<template>
<swiper :options="swiperOption">
<!--基础组件不能写死,放个插槽由调用它的页面决定它的内容-->
<slot></slot>
<div class="swiper-pagination" v-if="pagination" slot="pagination"></div>
</swiper>
</template>
<script>
import {swiper} from 'vue-awesome-swiper';
export default {
name: 'MeSlider',
components: {
swiper
},
/* 接收参数 */
props: {
direction: {
type: String,
default: 'horizontal',
validator(value) {
return [
'horizontal',
'vertical'
].indexOf(value) > -1;
}
},
interval: {
type: Number,
default: 3000,
validator(value) {
return value >= 0;
}
},
loop: {
type: Boolean,
default: true
},
pagination: {
type: Boolean,
default: true
}
},
data() {
return {
swiperOption: {
watchOverflow: true, // 只有一个slider,swiper会失效
direction: this.direction,
autoplay: this.interval ? { // 有interval才开启自动轮播
delay: this.interval,
disableOnInteraction: false // 一旦有交互就停止自动轮播
} : false,
slidesPerView: 1,
loop: this.loop,
pagination: {
el: this.pagination ? '.swiper-pagination' : null
}
}
};
}
};
</script>
<style lang="scss" scoped>
</style>
正在回答
同学你好,在遇到报错时,可以根据报错的提示去尝试解决。大概意思是<swiper-slide>这个组件是不是正确注册了。(如果不懂,也可以去网上翻译一下哦,培养自己独立解决问题的能力)
所以要去注册组件的地方检查一下,使用的这个组件到底有没有注册。检查的时候就会发现,原来调用时,没有写对组件名。
把slide为slider。
另外,因为同学的代码不全,部分代码在源码中运行不了。老师上面只是解决了你截图的报错,如果改了之后还有问题,可以在问答区提问,老师还会为你指导的。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星