第一步:
安装依赖
在app.vue终端输入
npm i swiper@5 --save
在package.json终端输入
npm i vue-awesome-swiper@3 --save
第二步:
全局安装
在
main.js
里面操作:
全局安装
import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/css/swiper.css'
Vue.use(VueAwesomeSwiper)
在App.vue中的HTML页面上将组件插入,并引入图片
★ 复制下面的代码在vscode中会出现word格式黄色空格,
需要自己删掉,建议手敲下面的代码
<swiper ref="mySwiper" :options="swiperOptions">
<img src="./assets/1.jpg" width="100%" height="100%" />
<img src="./assets/2.png" width="100%" height="100%" />
<img src="./assets/3.png" width="100%" height="100%" />
<div class="swiper-pagination" slot="pagination">div>
第三步:
下载图片放在你srcde assets中,并引入图片,这一步一定要注意你的引入地址是不是正确的,一般我们都会将图片放置在src.assets
在自己的组件文件夹中
新建一个轮播图组件
MySwiper
.vue
:
并复制以下代码到你的组件中:
<swiper ref="mySwiper" :options="swiperOptions" v-if="imgList.length">
v-for="(v, i) in imgList"
@click.native="goto(v.url)"
<img :src="v.imgurl" width="100%" height="100%" />
<div class="swiper-pagination" slot="pagination">div>
样式一定要加,不设置宽高就形不成轮播图
把组件引用到
app.vue文件中去:
截止到现在都是静态的轮播图,
可以到APNIC上翻找样式添加效果,网址如下:
如何将静态变成动态,我们需要在组件插入们父组件的动态效果
要在data中将我们的样式写好,方便我们使用,其中el的作用点是挂载,具体挂载到元素上
delay:2000延迟
effect:图片轮播效果
pagination: 分页器,clickable为true的时候点击可以切换
loop:true无缝衔接图片轮播
autoplay:控制轮播的时间,delay:1500可以限定时间轮播,而 stopOnLastSlide则可以在轮播到最后一个停止轮播
disableOnInteraction:false,可以更丝滑的轮播
el: ".swiper-pagination",
disableOnInteraction: false,
disableOnInteraction: false,
因为Vue在更新DOM是异步的,所以数据发生变化,Vue将开启一个异步更新,视图要等待数据变化完,在统一更新,我们点击事件获取的文本值就是发生变化前的,要解决这个问题就要使用
NextTick
轮播图操作的App.vue完整代码如下:
<swiper ref="mySwiper" :options="swiperOptions" v-if="imgList.length">
v-for="(v, i) in imgList"
@click.native="goto(v.url)"
<img :src="v.imgurl" width="100%" height="100%" />
<div class="swiper-pagination" slot="pagination">div>
import axios from "axios";
axios.get("/data/imgJson.json").then((res) => {
this.imgList = res.data.imglist;
this.$refs.mySwiper.swiper.slideTo(2,1000,false)
el: ".swiper-pagination",
disableOnInteraction: false,
截止到目前我们都是使用本地的图片做的轮播图,接下来我们来模拟一下工作中如何从接口动态的渲染并轮播
首先我们要使用接口就要安装axios依赖包
我们需要在父组件引入接口,注意点是一定要将域名与url在拼接引入
引入方法如下,我们一定要在created里获取接口信息,这样才能在页面加载前渲染数据
在子组件添加父组件的props接口,方便我们获取
axios的内容
在子组件获取父组件的
axios的内容后我们必须要在父组件
添加判断,来确保
axios获取到了在渲染组件,通过slides.length等于trun,还是false
现在已经建立好连接,可以调用axios的数据来渲染,在子组件我们就可以使用v-for来动态的渲染
添加导航按钮,并设置点击事件,注意点是给子组件添加添加事件
导航按钮我们可以在如下的网站,找到样式添加
添加配置
添加样式的时候一定要注意权重,因为是全局作用域,我们为了提高层级,可以添加scoped让他的作用域变成局部作用域,或者添加! important提高权重