前后端分离项目-前端

本文介绍了在Vue项目中配置Sass的步骤,包括解决sass-loader高版本错误的方法,以及Sass的实用技巧,如颜色变量、文本和布局样式定义、Flex布局和间距设置。此外,还提及了轮播图组件、精灵图和字体图标的应用,以及在main.js中的引用方式。
摘要由CSDN通过智能技术生成

一、环境配置

vue create web

选择vue2.0 默认就行

cd web

安装sass, sass-loader

sass-loader版本太高会报错Syntax Error: TypeError: this.getOptions is not a function,安装低版本即可
npm uninstall --save sass-loader // 卸载
npm i -D sass-loader@8.x // 安装

npm i -D sass

工具样式概念

可复用性高,sass

在main.js中引用.scss文件

sass好处

可嵌套

.hello {
    h1 {
        color: red;
    }
}

重置样式

style.scss

// reset
* {
    box-sizing: border-box; // 盒子模型以边框为主
    outline: none;  // 取消高亮
}
html {
    font-size: 13px; // 做为基础像素
}
body {
    maring: 0;
    font-family: Arial,Helvetica,sans-serif;
    line-height: 1.2em; 
    background: #f1f1f1;
}
a {
    color: #999;
    
}

网站色彩和字体定义

先定义好常用的颜色

// colors 
$colors: (
	"primary": #db9e3f,
    "white": #fff,
    "light:" #f9f9f9,
    "grey": #999,
    "dark-1": #343440,
    "dark": #222,
     "black": #000, 
);
// 根据已有颜色生成对应文字的类
@each $colorKey,$color in $colors {
    .text-#{$colorKey} {
        color: $color;
    }
     .bg-#{$colorKey} {
        background-color: $color;
    }
}
// text
// @each表示循环
@each $var in (left,center,right){
    .text-#{$var} {
        text-align: $var;
    }
}

// font 像素应该用rem
// 换算工具 px to rem 
// alt+z 先alt+s 改变默认的13 
$base-font-size: 1rem;
$font-sizes: (
	xs: 0.7692, //10px
    sm: 0.9231,  // 12px
    md: 1 ,       // 13px
    lg: 1.0769,   // 14px
    xl: 1.2308, // 16px
);
@each $sizeKey,$size in $font-sizes {
    .fs-#{$sizeKey} {
        font-size: $size * $base-font-size;
    }
}

定义flex布局

// flex
.d-flex {
    display: flex;
}
.flex-columm {
    flex-direction: column;
}
$flex-jc: (
    start: flex-start,
    end: flex-end,
    center: center,
    between: space-between,
    around: space-aroudn,
);
@each $key,$value in $flex-jc {
    .js-#{$key} {
        justify-content: $value;
    }
}
$flex-ai: (
    start: flex-start,
    end: flex-end,
    center: center,
    stretch: stretch
);
@each $key,$value in $flex-ai {
    .ai-#{$key} {
        align-items: $value;
    }
}
.flex-1 {
    flex: 1;
}
// 默认左边固定右边拉伸
.flex-grow-1 {
    flex-grow: 1;
}

justify-content属性

/* 对齐方式 */
justify-content: center; /* 居中排列 */
justify-content: start; /* 从行首开始排列 */
justify-content: end; /* 从行尾开始排列 */
justify-content: flex-start; /* 从行首起始位置开始排列 */
justify-content: flex-end; /* 从行尾位置开始排列 */
justify-content: left; /* 一个挨一个在对齐容器得左边缘 */
justify-content: right; /* 元素以容器右边缘为基准,一个挨着一个对齐, */

/* 基线对齐 */
justify-content: baseline;
justify-content: first baseline;
justify-content: last baseline;

/* 分配弹性元素方式 */
justify-content: space-between; /* 均匀排列每个元素
首个元素放置于起点,末尾元素放置于终点 */

justify-content: space-around; /* 均匀排列每个元素
每个元素周围分配相同的空间 */

justify-content: space-evenly; /* 均匀排列每个元素
每个元素之间的间隔相等 */

justify-content: stretch; /* 均匀排列每个元素
‘auto’-sized 的元素会被拉伸以适应容器的大小 */

/* 溢出对齐方式 */
justify-content: safe center;
justify-content: unsafe center;

/* 全局值 */
justify-content: inherit;
justify-content: initial;
justify-content: unset;

常用边距定义

// spacing

$spacing-types: (m: margin, p:padding);
$spacing-directions: (t: top, r:right,b:buttom,l:left);
$spacing-base-size: 1rem
$spacing-sizes: (0: 0,1: 0.25,2 : 0.5, 3:1,4:1.5,5:3,);

@each $typeKey,$type in $spacing-types {
    // m-1
    @each $sizeKey,$size in $spacing-sizes {
            //.m-1{margin: 0,25rem}
            .#{$typeKey}-#{$sizeKey} {
                #{$type}: $size* $spacing-base-size;  
        	}
        }
// mx-1
    @each $sizeKey,$size in $spacing-sizes {
            
            .#{$typeKey}x-#{$sizeKey} {
                #{$type}-left: $size* $spacing-base-size;  
                #{$type}-right: $size* $spacing-base-size;
        	}
        }
// my-1
    @each $sizeKey,$size in $spacing-sizes {
          
            .#{$typeKey}x-#{$sizeKey} {
                #{$type}-top: $size* $spacing-base-size;  
                #{$type}-bottom: $size* $spacing-base-size;
        	}
        }
    // mt-1
    @each $directionKey,$direction in $spacing-directions{
        @each $sizeKey,$size in $spacing-sizes {
            //.mt-1{margin-top: 0,25rem}
            .#{$typeKey}#{$directionKey}-#{$sizeKey} {
                #{$type}-#{$direction}: $size* $spacing-base-size;  
        }
        }
    }
  
}

再main.js里引入

主页框架

vue add router

t

改造App.vue

router.js

// 新建一个主页组件
import Main

routes: [
    {
        path: '/',
        name: 'main',
        component: Main
        children: [
        	{path:'/' ,name:'home',component:Home}
        ]
    }
]

Main.vue

<div class="tapbar">
    
</div>
<div class="nav">
    
</div>
<router-view></router-view>

轮播图

vue-awesome-swiper

在main.js中全局引用

npmjs查看相关使用

swiperOptins:{autoplay: {delay: 2500,disableOnInteraction:false}}

精灵图

www.spritecow.com

帮助我们定位图片位置

字体图标

阿里巴巴矢量图标库

下载代码 放到项目中assert中(整套的,不能单个添加)

在main.js中引用

使用 点击下载代码的.html文件,里面有使用指南

卡片组件

### 回答1: 外卖项目前后端分离是指将项目前端部分和后端部分进行分离开发,前端使用Vue框架,后端使用Spring Boot框架。 前端使用Vue框架可以提供良好的用户界面和交互体验。Vue具有组件化的特点,使得前端开发更加模块化和可维护。同时,Vue的数据绑定和响应式设计可以帮助实现快速更新页面的功能。通过Vue,用户可以方便地浏览外卖项目的菜单、下单、支付等操作,提升用户的使用体验。 后端使用Spring Boot框架可以提供强大的后台支持。Spring Boot是一种轻量级的Java框架,可以快速搭建和部署项目,减少开发的复杂度。使用Spring Boot,开发人员可以方便地实现外卖项目的后台逻辑,例如订单的处理、菜单的管理、支付的接口等。同时,Spring Boot集成了许多常用且可靠的开源库,为项目提供了高效、稳定的基础设施。 前后端分离的优势在于前端和后端可以并行开发,提高开发效率。前端和后端之间通过定义接口进行通信,降低了耦合度,灵活性更强。同时,单独部署前端和后端也可以提高项目的可维护性和可扩展性。例如,当需要添加新的功能或修改现有功能时,只需要修改相应的前端或后端代码,而不会影响到整个项目。 总之,外卖项目前后端分离以及使用Vue和Spring Boot框架的设计选择,可以帮助实现一个高效、稳定、可扩展的外卖平台。 ### 回答2: 外卖项目采用前后端分离的架构,前端使用Vue框架,后端采用Spring Boot框架。 前端使用Vue框架可以实现用户界面的可视化设计和交互体验。Vue框架具有简单易用、灵活可扩展、高效性能等特点,适用于构建复杂的单页面应用(SPA)。通过Vue框架,可以实现用户注册、登录、浏览菜单、购物车管理、订单处理等功能的前端设计和开发。前端通过调用后端接口,获取后端处理的数据,并将数据展示在用户界面上。 后端使用Spring Boot框架可以实现业务逻辑的处理和数据存储。Spring Boot框架提供了快速构建、简化配置和集成多种功能的特性,适用于快速开发和维护可靠的应用程序。通过Spring Boot框架,可以处理用户注册、登录验证、菜单管理、订单处理等业务逻辑,并与数据库进行交互,存储与外卖项目相关的数据。后端还需要提供RESTful接口,供前端调用和交互。 前后端分离架构的好处是可以实现前端与后端的解耦,提高开发效率和维护性。前端和后端可以同时进行开发,并可采用不同的技术栈,使得团队成员能够专注于自己的领域。前后端分离还可以实现多端复用,例如可以用同一组后端接口提供给Web端和移动端调用。 总的来说,外卖项目采用前后端分离的架构,借助Vue和Spring Boot框架实现了用户界面的展示和交互以及业务逻辑的处理和数据存储,从而使得项目开发更加高效和可维护。 ### 回答3: 外卖项目采用前后端分离的架构,前端使用Vue.js框架进行开发,后端使用Spring Boot框架进行开发。 前端使用Vue.js框架的原因是因为Vue.js具有简洁、高效、灵活的特点,能够轻松构建交互式的用户界面。Vue.js还拥有一套完整的生态系统,能够方便地进行组件化开发,并提供了强大的工具来处理数据和状态的变化。 后端使用Spring Boot框架的原因是因为Spring Boot是一个简化了Spring开发的微框架,能够快速构建可独立运行的、生产级的应用。Spring Boot提供了大量的开箱即用的特性,如自动配置、快速开发等,能够极大地提高开发效率。 在外卖项目中,前端负责用户界面的展示和交互逻辑的实现。前端通过Vue.js进行组件化开发,将页面拆分为多个可复用的组件,提高开发效率和代码维护性。前端还通过Vue.js提供的路由功能,实现不同页面之间的跳转和导航。同时,前端还与后端通过HTTP协议进行通信,获取后端提供的数据和服务,并将其展示给用户。 后端负责处理前端发送的请求,并根据业务逻辑进行相应的处理,最终返回数据给前端。后端还负责与数据库交互,对数据进行增删改查操作。后端使用Spring Boot提供的RESTful风格的API,能够轻松构建出符合规范的接口。同时,后端还可以利用Spring Security进行权限管理,确保只有具备相应权限的用户才能访问特定的接口。 综上所述,外卖项目采用前后端分离的架构,前端使用Vue.js框架进行开发,后端使用Spring Boot框架进行开发,能够提高开发效率和代码的可维护性,同时还能够满足用户对于界面交互和数据操作的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值