vue实战 京东金融 2 首页

实战开发环节需求分析头部slider部分和下面的菜单部分新手特权极速借贷理财精选新品推荐生活服务公司信息导航条需求分析头部、轮播图、新手特权、极速借贷、理财精选、新品推荐、生活服务、在线客服、公司介绍、导航条一定要先思考,先做架构:组件设计分析组件该怎么设计?创建三个组件的文件:core/btn.vue<template lang="html"> <...
摘要由CSDN通过智能技术生成

需求分析

头部、轮播图、新手特权、极速借贷、理财精选、新品推荐、生活服务、在线客服、公司介绍、导航条
在这里插入图片描述
一定要先思考,先做架构:
组件设计
分析组件该怎么设计?
在这里插入图片描述
创建三个组件的文件:
在这里插入图片描述
core/btn.vue

<template lang="html">
    <div :class="[btnClass,cname]">//btnClass默认名字,cname传进来的名字
        <slot/>
    </div>
</template>

<script>
export default {
   
    props: {
   
        cname: {
   
            type: String,
            default: "",
        },
    },
    data() {
   
        return {
   
            btnClass: "btn",
        }
    },
}
</script>

<style lang="scss">
@import "../../css/element.scss";
.btn{
   
  @include btn;
}
</style>

实现

core/panel.vue

<template lang="html">
    <section :class="[panelClass,cname]"> //panelClass默认名字,cname传进来的名字
        <h4>-{
   {
    title }}-</h4>
        <slot/>
    </section>
</template>

<script>
export default {
   
    props: {
   
        cname: {
   
            type: String,
            default: "",
        },
        title: {
   
            type: String,
            default: "",
        },
    },
    data() {
   
        return {
   
            panelClass: "panel",
        }
    },
}
</script>

<style lang="scss">
  @import "../../css/element.scss";
  .panel{
   
    @include panel;
  }
</style>

轮播图组件使用插件:vue-awesome-swiper
安装:npm i vue-awesome-swiper
在这里插入图片描述
查看装好没有:
在这里插入图片描述
引入:
在这里插入图片描述
core/slider.vue

<template lang="html">
    <section :class="cname">//自定义类名,修改样式
        <swiper :options="options" :not-next-tick="options.notNextTick">
            <swiper-slide v-for="item in items" :key="item.href">
                <router-link :to="{ name: item.href}">
                    <img :src="item.src" alt="">
                </router-link>
            </swiper-slide>
            //options.pagination判断是否显示
            <div class="swiper-pagination" v-if="options.pagination" slot="pagination"/>
        </swiper>
    </section>
</template>

<script>
import {
    swiper, swiperSlide } from "vue-awesome-swiper"
export default {
   
    components: {
   
        swiper,
        swiperSlide,
    },
    props: {
   
        cname: {
   
            type: String,
            default: "",
        },
        options: {
   
            type: Object,
            default() {
   
                return {
   
                    autoplay: true,
                    loop: true,
                    pagination: {
   
                        el: ".swiper-pagination",
                    },
                    notNextTick: false,
                }
            },
        },
        items: {
   
            type: Array,
            default() {
   
                return []
            },
        },
    },
}
</script>

<style lang="css">
  @import "~swiper/dist/css/swiper.css";
</style>

头部

在这里插入图片描述

public/header.vue

<template lang="html">
    <div :class="$style.header">
        <span :class="$style.left">
            <em>注册</em>&nbsp;|&nbsp;<em>登录</em>
        </span>
        <btn :class="$style.btnDownload">APP下载</btn>
    </div>
</template>

<script>
import btn from "../core/btn.vue"
export default {
   
    components: {
   
        btn,
    },
}
</script>

<style lang="scss" module>
  .header{
   
    color: #666;
    height: 100px;
    line-height: 100px;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    font-size: 32p;
    background: #fff url(//m.jr.jd.com/spe/qyy/main/images/jr-logo.png) center center no-repeat;
    background-size: auto 50%;
    z-index: 100;
    .left{
   
      font-size: 28px;
      height: 30px;
      line-height: 30px;
      margin: 17px 0 0 18px;
    }
    .btnDownload{
   
      float: right;
      font-size: 24px;
      border-width: 0;
      height: 56px;
      line-height: 56px;
      min-width: 120px;
      padding: 0;
      border-radius: 4px;
      margin: 28px 24px 0 0;
    }

  }
</style>

home/index.vue

<template lang="html">
    <div>
        <Heador/>
    </div>
</template>

<script>
import Heador from "../public/header.vue"
export default {
   
    components: {
   
        Heador
    },
}
</script>

在router/index.js中引入reset样式

import "../../css/reset.scss"

新建个viewport.js文件,把hotcss.js中的代码复制进去,引入自适应代码:
https://github.com/imochen/hotcss/blob/master/src/hotcss.js
然后,在webpack配置文件中,把viewport.js加入->入口文件中
在这里插入图片描述
html标签中加入了下面的属性就说明引入成功了:
在这里插入图片描述

slider部分和下面的菜单部分

在这里插入图片描述

home/hslider.vue

<template lang="html">
    <article class="">
        <Slider :items="items" :cname="$style.slider"/>
        <section :class="$style.list">
            
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值