当前位置: 首页 > news >正文

Vue智慧商城项目

创建项目

vue组件库 — vant-ui(常用于移动端)

Vant 2 - 轻量、可靠的移动端组件库

安装vant

npm i vant@latest-v2 -S

引入组件

按需导入和全部导入

全部导入

整个组件库的所有组件都导进来,缺点是增加了代码包体积

main.js

import Vue from 'vue'import Vant from 'vant'
import 'vant/lib/index.css'//插件安装初始化:内部会将vant所有组件进行导入注册
Vue.use(Vant)

自动按需导入

安装插件:npm i babel-plugin-import -D  

-D:仅在开发过程中使用

--force 会无视冲突,并强制下载npm库资源,当有资源冲突时覆盖掉原先的版本

--legacy-peer-deps-告诉npm忽略项目中引入的 各个modules之间的相同modules 但不同版本的问题 并继续安装,保证各个引入的依赖之间对自身所使用的不同版本modules共存

babel.config.js中配置

main.js

测试使用

效果展示:

问题:按需导入的配置会很长

解决:抽离,专门封装到utils文件夹下的js文件里


项目中的vw适配

postcss 插件实现px到vw的自动转换

  • 安装插件

yarn add postcss-px-to-viewport@1.1.1 -D

  • 根目录新建postcss.config.js文件,填入配置
module.exports = {plugins: {'postcss-px-to-viewport': {//vw 适配的标准屏的宽度viewportWidth: 375}}
}

比如设计图拿的是750;2倍图调成1倍图375 => 适配375标准屏幕

                             640                             320 => 适配320标准屏幕;viewportWidth就要改成320


路由设计配置

怎么区分一级路由和二级路由:单个页面独立展示的是一级路由;带导航的,里面嵌的是二级路由

配置所有的一级路由

配置二级路由 

先实现底部的tabber
  • 在vant-ui.js中按需引入

  • layout.vue粘贴官方代码

  • 改文字
  • 改图标

  • 改颜色

 效果展示:

基于底部导航,完成二级路由的配置
  • 配置二级路由规则

  • 配置导航链接

  • 配置路由出口

一个小问题:网页默认访问 / ;我们给 / 添加一个重定向,重定向到home

效果展示:


登录页静态布局

头部的样式定制

按需导入

使用

通用样式覆盖 —— 所有页面左箭头变成灰黑色

上面那种写法等价于

或者改成

选择器权重问题

在 CSS 里面,如果有多个选择器作用在同一元素上面,那么会按照优先级顺序进行样式的选取;优先级越高,浏览器最终就显示哪种样式

举例说明:

下方静态结构

login/index.vue

<template><div class="login"><!-- 头部 - vant当中的NavBar导航栏组件 --><!-- left-arrow 左箭头  @click-left="$router.go(-1)" 返回上一页 --><van-nav-bar title="会员登录" left-arrow @click-left="$router.go(-1)" /><!-- 主体 --><div class="container"><div class="title"><h3>手机号登录</h3><p>未注册的手机号登录后将自动注册</p></div><div class="form"><div class="form-item"><input class="inp" maxlength="11" placeholder="请输入手机号码" type="text"></div><div class="form-item"><input class="inp" maxlength="5" placeholder="请输入图形验证码" type="text"><img src="@/assets/code.png" alt=""></div><div class="form-item"><input class="inp" placeholder="请输入短信验证码" type="text"><button>获取验证码</button></div></div><div class="login-btn">登录</div></div></div>
</template><script>
export default {name: 'LoginPage'
}
</script><style lang="less" scoped>
.container {padding: 49px 29px;.title {margin-bottom: 20px;h3 {font-size: 26px;font-weight: normal;}p {// 网页中每行文字之间的距离line-height: 40px;font-size: 14px;color: #b8b8b8;}}.form-item {border-bottom: 1px solid #f3f1f2;padding: 8px;margin-bottom: 14px;display: flex;align-items: center;.inp {display: block;border: none;outline: none;height: 32px;font-size: 14px;flex: 1;}img {width: 94px;height: 31px;}button {height: 31px;border: none;font-size: 13px;color: #cea26a;background-color: transparent;padding-right: 9px;}}.login-btn {width: 100%;height: 42px;margin-top: 39px;background: linear-gradient(90deg,#ecb53c,#ff9211);color: #fff;border-radius: 39px;box-shadow: 0 10px 20px 0 rgba(0,0,0,.1);letter-spacing: 2px;display: flex;justify-content: center;align-items: center;}
}
</style>

效果展示:

request模块 — axios封装

目标:将axios请求方法,封装到request模块

接口文档:wiki - 智慧商城-实战项目

以获取图形验证码为例

  • 安装axios

yarn add axios

  • 新建request模块

utils/request.js

  • 创建axios实例

Axios 实例 | Axios中文文档 | Axios中文网

  • 配置导出实例

配置

什么是拦截器

在发请求和获取服务器响应数据的过程中,可以设置拦截器将请求或响应的数据流拦截下来,做相关操作以后再放行,有请求拦截器和响应拦截器两种

导出

  • 测试 

图片验证码功能

目标:基于请求回来的base64图片,实现图形验证码功能

将来在获取短信验证码的时候会用到 用户输入的图形验证码 和 请求响应回来的图形验证码key

需求:

  • 动态将请求回来(响应返回的)的base64图片,解析渲染出来

存在一个问题:每次刷新有一瞬间的图片损坏

图形验证码

 

因为一上来并没有默认给图片;改进:当picUrl有的时候才去加载图片

图形验证码改进

  • 点击验证码图片盒子,要刷新验证码 

封装图片验证码接口

目标:将请求封装成函数,统一放到API模块

好处:与页面逻辑分离;相同的请求在不同页面可以直接复用;请求进行了统一管理

步骤:

  • 在api文件中新建一个与登录相关的js请求模块

  • 封装请求函数

  • 页面中导入调用

Toast 轻提示

Vant 2 - 轻量、可靠的移动端组件库

使用场景:

在短信验证之前要输入手机号,那我们就要在短信验证之前加个校验,校验通过才发请求 —— 请输入正确的手机号

将来发送成功也要有个提示 —— 发送成功,请注意查收

步骤:

  • 注册安装

  • 两种使用方式:

导入调用(组件内index.vue 或 非组件内main.js都可使用)

效果展示:

通过this直接调用(必须在组件内)

本质是将方法注册挂载到了Vue原型上 Vue.prototype.$toast

扩展:

效果展示:

短信验证倒计时

相关文章:

Vue智慧商城项目

创建项目 vue组件库 — vant-ui&#xff08;常用于移动端&#xff09; Vant 2 - 轻量、可靠的移动端组件库 安装vant npm i vantlatest-v2 -S 引入组件 按需导入和全部导入 全部导入 整个组件库的所有组件都导进来&#xff0c;缺点是增加了代码包体积 main.js import…...

Qt Window应用程序去掉控制台窗口

Qt Window应用程序去掉控制台窗口 方式一 set(PROJECT_SOURCESWIN32main.cppmainwindow.hpp )add_executable(Tool-V2${PROJECT_SOURCES} )方式二 set_target_properties(Tool-V2 PROPERTIESMACOSX_BUNDLE TRUEWIN32_EXECUTABLE TRUE )参考文献&#xff1a; cmake Qt 项目…...

软件测试最新项目合集【商城、外卖、银行、金融等等.......】

项目一&#xff1a;ShopNC商城 项目概况&#xff1a; ShopNC商城是一个电子商务B2C电商平台系统&#xff0c;功能强大&#xff0c;安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城&#xff0c;系统PC后台是基于ThinkPHP MVC构架开发的跨…...

SAP SD学习笔记18 - 投诉处理4 - 请求书订正依赖,投诉处理流程的总结

上一章讲了 Credit/Debit Memo依赖&#xff0c;Credit/Debit Memo。Credit Memo依赖 本质上是一张受注票&#xff1b;Credit Memo 本质上是一张请求票。 SAP SD学习笔记17 - 投诉处理3 - Credit/Debit Memo依赖&#xff0c;Credit/Debit Memo-CSDN博客 本章继续讲本图中的内容…...

VBA批量提取PDF内容的程序

VBA批量提取PDF内容的程序 Sub ExtractPDFText()Dim pdfApp As Acrobat.AcroAppDim pdfDoc As Acrobat.CAcroPDDocDim pdfPage As Acrobat.AcroPDPageDim txtData As StringDim i As IntegerDim filePath As StringDim outputFolder As StringDim outputFileName As String 初…...

C++入门终

目录 一、引用 二、内联函数 三、auto关键字 四、指针空值nullptr 一、引用 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间 类型&引用变量名(对象名)…...

ubuntu下Qt5自动编译配置QtMqtt环境(10)

文章目录 [toc]1、概述2、下载QtMqtt源码3、编译4、验证5、参考6、视频 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;Qt网络编程 &#x1f448; 1、概述 Qt默认是不包含mqtt库的&#xff0c;如果需要使用到mqtt库就只能自己编译配置&#xff1b; 网络所有的…...

Vulnhub DC-3靶机攻击实战(一)

导语   在之前的博客分享中,我们介绍了关于如何获取DC-1和DC-2机器的所有的Flag,下面我们来介绍一下如何对DC-3靶机进行渗透测试。 第一步、搭建靶机环境 下载靶机,并且将靶机导入到VMware环境中,如下所示。 第二步、收集服务器信息 进入到Kali攻击机之后,打开root权限…...

常用传感器介绍合集

SW-520D倾斜传感器 HX711模块&#xff1a;高精度称重的核心利器 GY302光照传感器模块详解 MLX90614红外测温传感器介绍 MAX30102心率血氧传感器模块&#xff1a;精准健康监测的利器 RGB颜色传感器简介 DS18B20温度传感器模块 人体红外传感器简介 FC-28土壤湿度传感器 …...

“为您的家电穿上防震铠甲:优质电器缓冲器

在地震频发地区或日常生活中&#xff0c;确保家电的安全和稳定至关重要。为了防止地震、意外碰撞或其他外力对家电造成损害&#xff0c;采用优质的电器缓冲器就像是为家电穿上了一层坚固的“防震铠甲”。这不仅能够有效减少因震动导致的损坏风险&#xff0c;还能显著延长家电的…...

Elasticsearch入门之HTTP高级查询操作

前言 上一篇博客我们学习了es的一些基础操作如下&#xff1a; 创建索引&#xff08;创建表 create table&#xff09;查看索引&#xff08;查看表show tables&#xff09;查看单个索引&#xff08;查看单个表show create table&#xff09;删除索引&#xff08;删除表&#x…...

Java基础-异常

异常 什么是异常 在实际工作中&#xff0c;遇到的情况不可能是非常完美的。比如&#xff1a;你写一个模块&#xff0c;用户输入不一定符合你的要求、你的程序要打开某个文件&#xff0c;这个文件可能不存在或者文件格式不对&#xff0c;你要读取数据库的数据&#xff0c;数据…...

鲲鹏麒麟使用Docker部署Redis5

本次部署采用Docker方式进行部署&#xff0c;服务器为鲲鹏服务器&#xff0c;CPU架构为ARM64&#xff0c;操作系统版本信息为 # cat /etc/kylin-release Kylin Linux Advanced Server release V10 (Tercel)镜像 下载镜像鲲鹏麒麟Redis5镜像包 部署 1、上传镜像到服务器 2、…...

家政项目小程序+ssm

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了微信小程序家政项目小程序的开发全过程。通过分析微信小程序家政项目小程序管理的不足&#xff0c;创建了一个计算机管理微信小程序家政项目小程序的方案。文章…...

Day7 苍穹外卖项目 缓存菜品、SpringCache框架、缓存套餐、添加购物车、查看购物车、清空购物车

目录 1.缓存菜品 1.1 问题说明 1.2 实现思路 1.3 代码开发 1.3.1 加入缓存 1.3.2 清除缓存 1.3.2.1 新增菜品优化 1.3.2.2 菜品批量删除优化 1.3.2.3 修改菜品优化 1.3.2.4 菜品起售停售优化 1.4 功能测试 1.4.1 加入缓存 1.4.2 菜品修改 1.5 代码提交 2.缓存套餐 2.1 Spring C…...

天天 AI-241207:今日热点- Windsurf:在工程能力上进一步进化的Cursor

2AGI.NET | 探索 AI 无限潜力&#xff0c;2AGI 为您带来最前沿资讯。 Windsurf&#xff1a;在工程能力上进一步进化的Cursor 介绍了一个新的AI代码编辑器Windsurf&#xff0c;它被认为是Cursor的进化版&#xff0c;具有更强的工程能力。文章强调了Windsurf在自动化编码和系统…...

Windows远程桌面连接到Linux

我的电脑是一台瘦客户端&#xff0c;公司设置的不能安装其他软件&#xff0c;里面只有几个软件&#xff0c;还好有一个远程桌面&#xff08;Remote Desktop Connection&#xff09;&#xff0c;我想连接到另一台Linux的电脑上。 在Linux上安装xrdp&#xff1a; sudo apt insta…...

使用前,后端写 具有分页效果的数据展示

目录 前言 效果展示图如下 思路 服务器从前端界面获得什么&#xff1f; 前端界面从后端服务器应该拿到什么&#xff1f; 使用的技术 代码 前端代码 list.jsp中该功能的实现代码 后端代码 对应的servlet 代码 实体类代码 service的实现层 实现该功能的代码 dao层 实…...

ubuntu防火墙管理(六)——ebtables

ebtables 是一个用于管理以太网帧的防火墙工具&#xff0c;主要用于在数据链路层&#xff08;第 2 层&#xff09;过滤和控制网络流量。它类似于 iptables&#xff0c;但专注于以太网流量。以下是 ebtables 的基本使用方法和示例。 基本命令 ebtables 的基本命令格式如下&…...

Oracle开发和应用——常用对象(表)

6.5. 常用对象 6.5.1. 表 1)概念 表(Table),是关系库中最基本、也是最常用的数据库对象,用户的数据存储在表中,用户使用数据时可以随时通过表进行检索或操作。也可以说,表是关系库最基本、最根本的特征。我们可以通过查询系统视图来获取表的相关信息。 D:\> sqlp…...

如何在Mac上轻松导出微信聊天记录:WeChatExporter完整指南

如何在Mac上轻松导出微信聊天记录&#xff1a;WeChatExporter完整指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因误删重要微信聊天记录而焦虑&#xff1f…...

高效浏览器视频嗅探工具:猫抓扩展完整使用指南

高效浏览器视频嗅探工具&#xff1a;猫抓扩展完整使用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓&#xff08;Cat-Catch&#xff09;…...

Arm Cortex-X2/X3架构解析与性能优化实践

1. Arm Cortex-X2/X3集群架构概述在Armv9架构的高性能计算领域&#xff0c;Cortex-X2和X3代表了当前最先进的CPU设计理念。作为DynamIQ共享单元(DSU)的核心组件&#xff0c;它们通过可配置的缓存层次结构和智能一致性协议&#xff0c;为现代异构计算提供了灵活的解决方案。1.1 …...

构建高可用AI模型代理服务:统一接口、智能路由与生产级部署

1. 项目概述&#xff1a;一个无处不在的AI助手接口最近在折腾AI应用开发的朋友&#xff0c;可能都遇到过这样一个痛点&#xff1a;想在自己的项目里快速接入一个靠谱的、能处理复杂对话的AI模型&#xff0c;但要么被OpenAI的API调用限制和网络问题搞得焦头烂额&#xff0c;要么…...

React轻量级代码编辑器组件:基于Textarea的语法高亮方案

1. 项目概述&#xff1a;一个为React开发者量身打造的代码编辑器组件 如果你在React项目中需要嵌入一个代码编辑器&#xff0c;并且希望它轻量、美观、开箱即用&#xff0c;那么 uiwjs/react-textarea-code-editor 这个组件库很可能就是你一直在寻找的解决方案。它不是一个像…...

RFM69无线通信进阶:从基础收发到可靠数据传输系统构建

1. 项目概述&#xff1a;从点对点收发迈向可靠通信在物联网和嵌入式开发领域&#xff0c;无线通信模块是连接物理世界与数字世界的桥梁。RFM69系列模块&#xff0c;特别是工作在433MHz或915MHz等Sub-GHz频段的RFM69HCW&#xff0c;因其出色的抗干扰能力、较远的传输距离以及相对…...

如何用FontForge从零设计专业字体?揭秘字体编辑器的核心玩法

如何用FontForge从零设计专业字体&#xff1f;揭秘字体编辑器的核心玩法 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 想象一下&#xff0c;你手写的签名、设计的l…...

Arm Ethos-U NPU架构解析与性能优化实战

1. Arm Ethos-U NPU架构概述Arm Ethos-U系列神经网络处理器(NPU)是专为边缘计算和物联网设备设计的高效能AI加速器。作为Arm Cortex-M处理器的配套加速单元&#xff0c;它能够在极低功耗下提供强大的机器学习推理能力。Ethos-U采用高度优化的张量处理架构&#xff0c;支持8位、…...

STM32F103C8T6+ESP8266连接OneNET实战:从设备配置到数据上云完整流程解析

STM32F103C8T6ESP8266连接OneNET实战&#xff1a;从设备配置到数据上云完整流程解析 1. 物联网设备上云的核心价值与挑战 在智能家居、工业监测等场景中&#xff0c;将嵌入式设备数据实时上传至云端已成为刚需。STM32F103C8T6作为经典Cortex-M3内核MCU&#xff0c;搭配ESP8266 …...

大模型涌现能力:从原理到工程实践的探索与分类

1. 项目概述&#xff1a;从“玄学”到“科学”的涌现能力探索最近和几个做模型研发的朋友聊天&#xff0c;大家不约而同地提到了一个词&#xff1a;“涌现能力”。这个词听起来有点玄乎&#xff0c;像是某种不可预测的“魔法”&#xff0c;但当我们深入讨论时&#xff0c;发现它…...