2021-11-29 vue移动端卖座电影项目(三) vue项目中使用Swiper插件,Film页面设置轮拨图,nowPlaying页面设置样式

本文介绍了如何在Vue移动端项目中使用Swiper插件创建轮播图。首先,引入Swiper.vue组件,并在Film.vue中通过axios请求获取后台轮播图片数据。由于原网站取消了轮播图模块,故使用替代图片。详细步骤包括组件创建、匿名插槽应用以及数据插入到模板中。

1.引入swiper.vue组件
目的

在Film中插入一个轮拨图

步骤
  • 创建views/Film/Swiper.vue
<template>
    <!-- 重命名为filmswiper:目的是有多个轮拨时便于识别 -->
  	<div class="swiper-container filmswiper">
	    <div class="swiper-wrapper">
	        <div class="swiper-slide">Slide 1</div>
	        <div class="swiper-slide">Slide 2</div>
	        <div class="swiper-slide">Slide 3</div>
	    </div>
	    <!-- 如果需要分页器 -->
	    <div class="swiper-pagination"></div>
	</div>
</template>

<script>
// 引入Swiper的js和css
import Swiper from "swiper" //js
import "swiper/css/swiper.min.css"//css
export default {
  mounted() {
    new Swiper(".filmswiper",{
      loop: true,
      //自动轮拨
      autoplay:{
        delay:2000
      },
      // 显示分页
      pagination: {
        el: ".swiper-pagination",
      },
    })
  }
};
</script>

  • 引入swiper样式
    文件位置:vue项目文件中:node_modules/swiper/css/swiper.min.css
    不同版本的Swiper的文件夹结构可能不一样,
    总之就是在swiper文件夹下找到swiper.min.css文件即可
    在这里插入图片描述
  • views/FIlm.vue
<template>
  <div>
   <!-- 在Film中插入一个轮拨 -->
   <swiper></swiper>
    <div>二级声明式导航:film</div>
      <router-view></router-view>
  </div>
</template>
<script>
// 导入Swiper.vue组件
import swiper from "./Film/Swiper"
export default {
    components:{
      // 注册
      swiper
  }
}
</script>
结果

在这里插入图片描述

2.把swiper-slide做成匿名插槽

Swiper.vue

<template>
  	<div class="swiper-container filmswiper">
	    <div class="swiper-wrapper">
        <slot></slot>
         	<!-- <div class="swiper-slide">Slide 1</div> -->
	        <!-- <div class="swiper-slide">Slide 2</div> -->
	        <!-- <div class="swiper-slide">Slide 3</div> -->
	    </div>
	    <!-- 如果需要分页器 -->
	    <div class="swiper-pagination"></div>
	</div>
</template>

Film.vue

<template>
  <div>
   <swiper>
    	<div class="swiper-slide" v-for="n in 5" :key="n">Slide{{n}}</div>
   </swiper>
</div>
</template>
3.Film.vue中通过axios请求获取后台轮播图片
目的

获取后台轮播图片,并在Film.vue的轮拨图中插入图片

步骤

Film.vue

  • 获取后台图片
    script
// 引入axios
import axios from "axios"
export default {
  data:function(){
    return{
      looplist:[]
    }
  },
    components:{
      // 注册
      swiper
  },
  mounted(){
    //此处是重复从后台获取数据的过程:
    // 网络>复制>复制链接地址
    // axios.get("https://m.maizuo.com/gateway?cityId=310100&pageNum=1&pageSize=10&type=1&k=2318535")
    // 使用axios的完整写法配置字段
    /*字段获取:网络>标头>请求标头>
        X-Client-Info: {"a":"3000","ch":"1002","v":"5.2.1","e":"16662641254110824868151297"}
        X-Host: mall.film-ticket.film.list */
    axios({
      url:"",
      headers:{
       "X-Client-Info": '{"a":"3000","ch":"1002","v":"5.2.1","e":"16662641254110824868151297"}',
        "X-Host": 'mall.film-ticket.film.li'
      }
    }).then(res=>{
      console.log("我是looplist:",res.data);
      this.looplist=res.data.data;
    })
  }
}
  • 插入图片
    template:
 <!-- <div class="swiper-slide" v-for="n in 5" :key="n">Slide{{n}}</div> -->
    <div class="swiper-slide" v-for="data in looplist" :key="data.bannerId">{{n}}
        <img :src="data.imgUrl"/>
    </div>
   </swiper>`
因为现在原网站已取消轮拨图模块,只能使用其他图片替代

最后的代码为:
Swiper.vue

<template>
    <!-- 重命名为filmswiper -->
  	<div class="swiper-container filmswiper">
	    <div class="swiper-wrapper">
        <!-- <slot></slot> -->
          <div class="swiper-slide"><img src="https://pic.maizuo.com/usr/2022/f6bef612cf73976c8bafeed2500a4f78.jpg" alt=""></div>
	        <div class="swiper-slide"><img src="https://pic.maizuo.com/usr/2022/e302538b376615750f5a4e3c660990be.jpg" alt=""></div>
	        <div class="swiper-slide"><img src="https://pic.maizuo.com/usr/2022/d80940fa8ba6f721f913f48d3490a465.jpg" alt=""></div>
	        <div class="swiper-slide"><img src="https://pic.maizuo.com/usr/2022/9fcfd07a00a434ecadfd11aea99cade4.jpg" alt=""></div>
	        <div class="swiper-slide"><img src="https://pic.maizuo.com/usr/2022/60015ebeea5a25376639fe3517590280.jpg" alt=""></div>	    </div>
	    <!-- 如果需要分页器 -->
	    <div class="swiper-pagination"></div>
      <!-- 分页器写在旁边:取新类名并设置样式 -->
	</div>
</template>
<script>
// 引入Swiper
import Swiper from "swiper" //js
import "swiper/css/swiper.min.css"//css
export default {
  mounted() {
    console.log("swiper-mounted");
    new Swiper(".filmswiper",{
      loop: true,
      //自动轮拨
      autoplay:{
        delay:2000
      },
        // 显示分页
        pagination: {
          el: ".swiper-pagination",
        },
    })
  }
};
</script>
<style lang="scss" scoped>
img{
  width: 100%;
}
</style>

Film.vue

<template>
  <div>
   <!-- 在Film中插入一个轮拨 -->
   <swiper></swiper>
  <router-view></router-view>
  </div>
</template>
<script>
// 导入Swiper.vue组件
import swiper from "./Film/Swiper"
export default {
    components:{
      // 注册
      swiper
  }
}
</script>

结果:http://localhost:8081/#/Film/nowPlaying
在这里插入图片描述

Vue.js是十分耀眼的项目之一,受到国内外开发人员的极度推崇。内容包括Vue.js概述、Vue.js的安装、定义页面、渲视、路由、发送HTTP请求、表单的绑定和提交、打包、部署、解决js的跨域问题、Debug、Component、Vuex、页面的生命周期等,*后还给出一个实战案例供读者了解Vue.js项目开发过程。2020-2021最新Vue.js零基础入门到精通实战开发课程视频教程下载。课程以项目实战为驱动,帮你打开通往Vue.js的任督二脉,让你迅速成为一个优秀的Vue.js开发人员。 一、课程介绍Vue.js致力于构建数据驱动的web应用开发框架,是一个精简的MVVM。Vue.js 专注于 MVVM 模型的 ViewModel 层。简单的数据操作,就可以完成页面的更新,当然也有很多类似的框架,如Angular,React,但是Vue以简洁化,轻量级,数据驱动,模块友好等优势深受企业以及前端开发者的喜爱,成为前端开发人员必备的技能。2020年了,你还只会用jQuery吗?本课程以项目实战为驱动,帮你打开通往Vue.js的任督二脉,让你迅速成为一个优秀的Vue.js开发人员。二、课程需知我们的课程面向的同学是:需要有页开发基础,熟悉HTML/CSS/JavaScript前端开发技术,初步掌握JSON,闭包,AJAX…等JavaScript技术,在进阶阶段的课程中会使用ES6的一些语法,因此事先掌握一些ES6的知识也是有必要的。、内容编排本课程分为大部分讲解了运用Vue.js 进行项目实战开发。内容包括:第一步:Vue.js基础1、初识vue.js 2、模板语法3、计算属性4、class与style绑定5、条件渲染6、列表渲染7、fetch&axios8、事件处理器9、表单控件10、组件化开发第二步:Vue.js进阶1、过渡动画效果2、自定义指令3、单文件组件4、路由vue-router第步:项目实战1、卖座苹果项目- 引入iconfont- 路由搭建- axios以及反向代理-嵌套路由-数据渲染2、Vue.js方框架使用-Element UI-mintUI3、状态管理vuex课程详细目录:Vue.js 课程介绍.docx第001集-1vue初识第002集-2条件渲染第003集-3tab切换第004集-4列表渲染第005集-5模板语法第006集-6计算属性第007集-7侦听器和class第008集-8内联样式第009集-9事件绑定第010集-10表单输入绑定第011-11过渡动画第012集-12todolist应用第013集-13生命周期与组件生命周期第014集-14组件之间的传值第015集-15$root_$parent_$children第016集-16v-model与插槽第017集-17vue-cli第018集-18vue-devtools第019集-19vue-cli原理第020集-20vue组件化第021集-21vue聊天框第022集-22socket初识和安装第023集-23单聊和群聊以及命名空间第024集-24聊天项目第025集-25聊天登录登出第026集-26聊天列表第027集-27个人聊天第028集-28单聊功能第029-29自动滚动和聊天第030集-30群聊第031集-31注意编译地址第032集-32vue实现原理1第033集-33vue实现原理2第034集-34less第035集-35vue-less使用第036集-36sass第037集-37vue-router第038集-38动态路由和嵌套路由第039集-39命名视和组件传参第040集-40vue路由高级应用第041集-41Vue路由守卫第042集-42vuexstate第043集-43vuex getter第044集-44vuex-action第045集-45vuex-module第046集-46vuex-插件第047集-47vuex-vant第048集-48易严选商城第049集-49易商城首页第050集-50分类列表第051集-51产品列表第052集-52产品列表2第053集-53商品产品页面第054集-54产品sku第055集-55产品购物车第056集-56购物车
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端OnTheRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值