前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

这篇具有很好参考价值的文章主要介绍了前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1-轮播图模块数据开发

2-floor组件开发

3-抽取全局轮播图组件


1-轮播图模块数据开发  

轮播图需要用到swiper插件,先安装5.4.5版本的swiper:
npm  install --save swiper@^5.4.5 --force

模拟从服务器获取数据;
1-编写mockRequests的js文件和之前编写的request的js文件类似,就修改一下baseURL,我们模拟的数据请求路径约定为/mock开头
前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

2-src/api/index.js中引入mockRequest.js并且对外保留方法

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

3-找到对应的组件/页面,在页面加载过程中派发action获取轮播图数据

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

4-因为轮播图在home模块,所以去store/home去真正获取数据,存取数据

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

5-组件页面数据获取,循环遍历数据

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

6-swiper组件的使用
安装swiper插件:npm  install --save swiper@^5.4.5 --force
文件引入src\pages\home\listContainer\index.vue;import Swiper from 'swiper';
main.js中引入样式【因为swiper样式在其他页面/组件也需要使用】,import 'swiper/css/swiper.css';
通过watch+nextTick()函数实现轮播图展示效果
 

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 文章来源地址https://www.toymoban.com/news/detail-400330.html

 ps:
(1)我们不能将new Swiper放入到mounted中,因为mounted是页面加载完成展示,但是我们是通过axios异步请求服务端获取数据而且还v-for循环获取数据(也要耗时),页面结构没有完全加载完成,会导致轮播图功能显示不全;
(2)所以通过watch+nextTick()实现此功能;
(3) swiper对象里面pagination属性clickable:true,默认是false,点击轮播图下面小圆点实现图片动态展示需要用到这个属性;
(4)document.querySelector(".swiper-container")可以使用ref来代替
...

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

2-floor组件开发  

获取floor的数据,
1-api中定义接口请求;2-页面派发action;3-vuex中请求和store数据;4-页面拿到服务端的数据展示;
注意:页面派发action是哪个页面派发?因为home页面需要展示两次,所以只能再home组件发送请求,不能在floor组件发action;home和floor是父子关系;



前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

 

home组件中派发action:

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

home仓库中store数据(floor是home的字组件)

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

循环遍历数据:

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

ps:
(1)v-for标签也可以在自定义组件中使用
(2)现在是在home组件中显示两个floor,但是home中的数据需要传输到floor组件中,需要父子组件通讯;
父子组件通讯:
props,

自定义事件:$on,$emit
全局事件总线:$bus 全能
插槽
vuex

父组件中自定义属性list:
前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

子组件接受父组件的数据:

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

子组件展示数据:

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

ps:(1)swiper使用步骤:引入swiper,引入swiper样式,new swiper实例
(2)注意floor轮播图这边,这里在mounted中使用swiper就没有首页banner中的mounted中使用swiper问题;因为floor的mounted中并没有派发action获取数据,floor中的数据都是从父组件home中发起请求传递过来的,所以这里的swiper可以直接使用

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

3-抽取全局轮播图组件  

       首页的轮播图再几个地方使用,我们拆分为公用组件(全局组件),注册一次,就可以直接使用。现在在首页的banner在watch中实例化swiper,目前floor中在mounted中实例化swiper;我们先要改造floor中的结构,这样结构类似,我们方便抽取...

全局组件我们都放到src/components/ 文件夹下;

<template>
    <div class="swiper-container" id="floor1Swiper" ref="cur">
    <div class="swiper-wrapper">
        <div class="swiper-slide" v-for="carousel in list" :key="carousel.id">
            <img :src="carousel.imgUrl" />
        </div>
    </div>
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>

    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
    </div>
  
</template>

<script>
import Swiper from 'swiper'
export default {
    name:'Carousel',
    props:['list'],
    //floor这里watch监听不到list数据变化,因为list是父组件传递过来的,是不变的...需要使用immediate属性
    watch:{
        list:{
            //不管数据有没有变化,立即监听
            immediate:true,
            handler(newValue,oldValue){
                this.$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>

<style>

</style>



前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

main.js中注册全局组件:

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

使用全局组件:

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

 

到了这里,关于前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端Vue自定义简单实用轮播图封装组件 快速实现轮播图

    前端Vue自定义简单实用轮播图封装组件 快速实现轮播图, 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下: 使用方法 HTML代码实现部分

    2024年02月10日
    浏览(50)
  • 【案例分享 | 旅游出行app】Axure制作banner轮播图交互效果

    哈喽,大家好!今天给大家介绍如何使用Axure软件制作banner轮播图的交互效果。 【预览地址含下载】电脑打开链接:https://wh9x1s.axshare.com/ 【完整案例作品预览含下载】:https://fx2z9z.axshare.com 【视频教程】:哔哩哔哩视频 首先,让我们来看下效果展示:进入页面后自动轮播图

    2024年02月19日
    浏览(38)
  • 前端Vue自定义轮播图视频播放组件 仿京东商品详情轮播图视频Video播放效果 可图片预览

    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随

    2024年02月15日
    浏览(34)
  • vue项目中使用vant轮播图组件(桌面端)

    vue使用vant轮播图组件(桌面端) 2.1 Visual Studio Code 1.75.0 2.2 chrome浏览器 2.3 node v18.14.0 3.1 安装环境 3.2 添加代码 3.3 结果展示 4.1 安装环境 先安装包 然后桌面端适配 4.2 添加代码 注册组件 相比于官方给的代码,有两个方面需要注意,一个是适配桌面端,还有一个就是我以为vant组

    2024年02月04日
    浏览(34)
  • 【uniapp小程序开发】—— 组件封装之【自定义轮播图】

    本文主要展示小程序端封装轮播图组件,使用的是uniapp进行的开发,主要使用的是uniapp官网提供的 swiper 组件,可以参考官方文档,查看一些相关API。 效果图一睹为快: 话不多说直接上正文一起来学习一下封装轮播图组件吧! 滑块视图容器。 一般用于左右滑动或上下滑动,比

    2023年04月08日
    浏览(26)
  • Vue3.0项目——打造企业级音乐App(一)Tab栏、轮播图、歌单列表、滚动组件

    内容 参考链接 Vue3.0 项目启动 Vue3.0 项目启动(打造企业级音乐App) Vue3.0项目——打造企业级音乐App(一) Tab栏、轮播图、歌单列表、滚动组件 Vue3.0项目——打造企业级音乐App(二) 图片懒加载、v-loading指令的开发和优化 vue3.0-music 该项目为移动端的项目,我们要设置缩放

    2023年04月11日
    浏览(37)
  • vue尚品汇商城项目-day03【vue插件-19.mockjs模拟数据(开发Home首页当中的ListContainer组件与Floor组件)】

    安装命令:cnpm install --save mockjs 重难点说明 使用swiper实现静态页面轮播 解决多个swiper冲突的问题 解决swiper动态页面轮播的bug 定义可复用的轮播组件 解决Floor组件中轮播有问题的bug 利用mockjs提供模拟数据 Mockjs: 用来拦截ajax请求, 生成随机数据返回 学习 ​ a. http://mockjs.com/ ​

    2023年04月09日
    浏览(41)
  • element ui 中轮播图组件样式修改为三列展示轮播

    实现效果 在使用 Element UI 组件库中的跑马灯组件时,需求是三列卡片轮播的实现。虽然 Element UI 中跑马灯组件提供了 type=‘card’ 属性,去设置轮播为卡片类型,但是样式不是我们所期待的,不想要缩放效果,于是便对跑马灯组件源码进行调整。 源码主要修改 跑马灯组件主

    2024年02月04日
    浏览(32)
  • 12-web前端轮播图案例 (小米商城)

    说明: 轮播图在前端开发中是一种常见的元素,通常用于展示一系列的图片或者内容,并通过滑动或者点击的方式进行切换。使用JavaScript来实现轮播图有以下几个意义: 提升用户体验:轮播图可以在有限的空间内展示更多的内容,为用户提供更多的信息。同时,轮播图也具

    2024年02月08日
    浏览(34)
  • vue3自定义封装组件:消息提示、轮播图、加载更多、骨架屏组件

    定义组件:src/components/library/xtx-infinite-loading.vue 注册组件:src/components/library/index.js  引用组件:src/main.js 使用组件: .vue文件 首先是轮播图的样式:src/components/library/xtx-carousel.vue  然后是轮播图的结构与逻辑封装:src/components/library/xtx-carousel.vue 插件注册:src/components/library

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包