插件——swiper轮播(watch+nextTick结合使用)
2022/2/6 6:12:33
本文主要是介绍插件——swiper轮播(watch+nextTick结合使用),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
swiper轮播
[swiper官网]
1、安装swiper5
npm install swiper@5
2、在需要使用轮播图的组件内导入swpier和它的css样式
//引入Swiper import Swiper from 'swiper' //引入Swiper样式 import 'swiper/css/swiper.css'
3、在组件中new Swiper实例之前,页面中必须要有dom标签
4、创建swiper实例
- 确保数据加载好了---watch,监听数据的变化
- 确保结构渲染出来了---nextTick,获取更新后的 DOM
<div class="swiper-container" id="mySwiper" ref="cur"> <div class="swiper-wrapper"> <div v-for="carousel in list" :key="carousel.id" class="swiper-slide"> <img :src="carousel.imgUrl" /> </div> </div> <!-- 如果需要分页器 --> <div class="swiper-pagination"></div> <!-- 如果需要导航按钮 --> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> </div> <script> import Swiper from 'swiper'; export default { name: 'Carousel', props: { list: { type: Array, default() { return [] } } }, watch: { //监听bannerList数组的变化,由[]-->数组中有四个元素 list: { immediate: true, handler(newVal, oldVal) { //如果执行handler方法,代表组件身上这个属性的属性已经有了【数组:四个元素】 //再刷新的话,还是不行,说明结构还是没有 //原因:当前这个函数执行,只能保证bannerList数据有了,但是没有办法保证v-for结构渲染出来了没。 //解决:nextTick 在下次 DOM 更新 循环结束之后 执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。 //nextTick this.$nextTick(() => { //当执行这个回调函数的时候:保证服务器数据回来了,v-for执行完毕了【轮播一定有了】 //更新dom之后 //保证页码中的结构一定是有的,经常和很多插件一起使用【都需要dom存在】 // console.log('nextTick') var mySwiper = new Swiper(this.$refs.cur, { loop: true, // 循环模式选项 // 如果需要分页器 pagination: { el: '.swiper-pagination', clickable: true, }, // 如果需要前进后退按钮 navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', } }) }) } } } }; </script>
这篇关于插件——swiper轮播(watch+nextTick结合使用)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享