当前位置:   article > 正文

VUE项目--卖座app_vue卖座网

vue卖座网

一.由于做移动端,所以先根据设计稿设置好设置rem

二、做轮播图
2.使用swiper引入轮播图
1)现在flims文件下自定义film-swiper组件,来显示大轮播,注意加上key值,不然会加载过早。
2)自定义一个film-swiper-item组件包裹着轮播数据

  1. <film-swiper :key="datalist.length">
  2. <film-swiper-item v-for="data in datalist" :key="data.filmId"
  3. class="filmswiperitem">
  4. <img :src="data.poster" alt="">
  5. </film-swiper-item>
  6. </film-swiper>

创建film-swiper和film-swiper-item组件

film-swiper-ltem组件

注意要引入swiper插件

导入组件flims页面

3.使用axios获取轮播图信息

这个json文件是本地保存的,为了就是方便设置轮播图

实现效果

三、做底部选项卡
1.先创建Tabbar组件,使用声明式导航,点击转去点击页面,active-class是动态给节点加入样式,当点击时候就给class加上样式

  1. <ul>
  2. <!--vue-router 声明式导航 -->
  3. <li>
  4. <router-link to="/films" active-class="beeactive">
  5. <li class="iconfont icon-pay">电影</li>
  6. </router-link>
  7. </li>
  8. <li>
  9. <router-link to="/cinemas" active-class="beeactive">
  10. <li class="iconfont icon-type">影院</li>
  11. </router-link>
  12. </li>
  13. <li>
  14. <router-link to="/register" active-class="beeactive">
  15. <li class="iconfont icon-addressbook">我的</li>
  16. </router-link>
  17. </li>
  18. </ul>

在app页面上引入Tabbar组件

  1. <div class="box">
  2. <tabbar ref="mytabbar" v-show="$store.state.isTabbarShow"></tabbar>
  3. <!-- 路由容器 等于插槽类型 -->
  4. <section><router-view></router-view></section>
  5. </div>

效果图

四、电影导航组件
1.创建swiper-header组件

  1. <ul>
  2. <li>
  3. <router-link to="/films/nowplaying">
  4. <span class="beeactive">正在热映</span>
  5. </router-link>
  6. </li>
  7. <li>
  8. <router-link to="/films/comingsoon">
  9. <span class="beeactive">即将上映</span>
  10. </router-link>
  11. </li>
  12. </ul>

整体效果

五、正在热映的数据获取
由于网站没有跨域限制,所以可以拿取数据

不过需要设置请求头

所以使用axios进行封装

  1. const http = axios.create({
  2. baseURL: 'https://m.maizuo.com', //每次访问就是maizuo.com
  3. timeout: 10000, //10秒超时
  4. headers: {
  5. 'X-Client-Info':
  6. '{"a":"3000","ch":"1002","v":"5.2.0","e":"16481780177384775358676993","bc":"440100"}'
  7. }
  8. })

可以获取到数据
接下来就是在正在热映的页面使用获取回来的数据
先把得到的电影flims数据给datalist

  1. http({
  2. url: `/gateway?cityId=${this.$store.state.cityId}&pageNum=1&pageSize=10&type=1&k=7388950`,
  3. headers: {
  4. 'X-Host': 'mall.film-ticket.film.list'
  5. }
  6. }).then((res) => {
  7. this.datalist = res.data.data.films
  8. })
  1. <van-cell
  2. v-for="data in datalist"
  3. :key="data.filmId"
  4. @click="handleClick(data.filmId)"
  5. >
  6. <img :src="data.poster" alt="" />
  7. <div class="titel">{
  8. { data.name }}</div>
  9. <div class="content">
  10. <div :class="data.grade ? '' : 'hidden'">
  11. 观众评分:<span style="color: orange">{
  12. { data.grade }} </span>
  13. </div>

不过注意这个这里的演员数据是以对象形式存在,不能直接使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/675392
推荐阅读
相关标签