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

vue学习6

1. 智慧商城

1. 路由设计配置

单个页面,独立展示的,是一级路由请添加图片描述

2.二级路由配置
  1. 规则&组件
  2. 配置导航链接
  3. 配置路由出口
<template><div id="app"><!--二级路由出口--><router-view></router-view><van-tabbar route active-color="#ee0a24" inactive-color="#000"><van-tabbar-item to="/home" icon="wap-home-o">首页</van-tabbar-item><van-tabbar-item to="/category" icon="apps-o">分类页</van-tabbar-item><van-tabbar-item to="/cart" icon="shopping-cart-o">购物车</van-tabbar-item><van-tabbar-item to="/myorder" icon="user-o">我的</van-tabbar-item></van-tabbar><router-view/></div>
</template>
3.登录页静态布局

请添加图片描述

<template><div id="app"><div class="login"><!--头部--><van-nav-bar title="会员登录" left-arrow></van-nav-bar><!--主体--></div>
// 重置默认样式
* {margin: 0;padding: 0;box-sizing: border-box;
}
// 文字溢出省略号
.text-ellipsis-2 {overflow: hidden;-webkit-line-clamp: 2;text-overflow: ellipsis;display: -webkit-box;-webkit-box-orient: vertical;
}
// 添加导航的通用样式
.van-nav-bar {.van-nav-bar_arrow {color: #333;}
}

2.购物车-request模块

1.axios封装

使用axios来请求后端接口,所以会对axios进行一些配置,项目开发中,对axios进行二次封装,单独封装到一个requeat模块中,便于维护使用
请添加图片描述

import axios from 'axios'
// 创建axios实例,对将来创建出来的实例,进行自定义配置
// 不会污染原始的axios实例
const instance = axios.create({baseURL: 'https://some-domain.com/api/',timeout: 5000,headers: { 'X-Custom-Header': 'foobar' }
})// 自定义配置-请求/相应 拦截器
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
// 在发送请求之前做些什么return config
}, function (error) {
// 对请求错误做些什么return Promise.reject(error)
})// 添加响应拦截器
axios.interceptors.response.use(function (response) {
// 2xx 范围内的状态码都会触发该函数。
// 对响应数据做点什么(默认axios会多包装一层data)return response.data
}, function (error) {
// 超出 2xx 范围的状态码都会触发该函数。
// 对响应错误做点什么return Promise.reject(error)
})
// 导出配置好的实例
export default instance
2. 图形验证码

说明:

  1. 图形验证码,本质就是一个请求回来的图片
  2. 用户将来输入图形验证码,用于强制人机交互,可以抵御机器自动化攻击
    需求:
    动态将请求回来的base64图片,解析渲染出来
    点击验证图片盒子,要刷新验证码
import request from '@/utils/request'
export default {name: 'LoginIndex',data () {return {picCode: '', // 用户输入图形验证码picKey: '', // 将来请求传递的图形验证码唯一标识picUrl: '' // 存储请求渲染的图片地址}},async created () {this.getPicCode()},methods: {// 获取图形验证码async getPicCode () {request.get()}}
}

请添加图片描述

3. 封装图形验证码接口

将请求封装成方法,统一存放到api模块,与页面分离
新建请求模块,封装请求函数,页面导入调用
请添加图片描述
好处:

  1. 请求与页面逻辑分离
  2. 相同的请求可以直接复用
  3. 请求进行了统一管理

3.购物车-Toast轻提示

注册安装

import { Toast } from 'vant'
Vue.use(Toast)

两种使用方法:

  1. 导入调用(组件内或非组件中均可)
import { Toast } from 'vant'
Toast(提示内容)
  1. 通过this直接调用(必须组件内)
    本质:将方法,注册挂载到了Vue原型上Vue.prototype.$toast=xxx
this.$toast('提示内容')

4.购物车-验证码图形校验

请添加图片描述
请添加图片描述
请添加图片描述

5.登录功能

封装api接口,实现登录功能

  1. 阅读接口文档,封装登录口
  2. 登录前的校验(手机号,图形验证码,短信验证码)
  3. 调用方法,发送请求,成功添加提示并跳转
    请添加图片描述
    请添加图片描述

6.响应拦截器统一处理错误提示

问题:每次请求,都可能会有错误,就需要错误提示
说明:响应拦截器是我们拿到数据的第一个数据流转站,可以在里面统一处理错误
请添加图片描述

7.登录权证信息存储

目标:vuex构建user模块存储登录权证(token&userld)
补充说明:

  1. token存入vuex的好处,易获取,响应式
  2. vuex需要分模块=>user模块

state()提供数据
mutations()提供修改数据的方法
actions()提供异步操作
getters()提供一些基于state所派生出的一些属性的

8.storage存储模块-vuex持久化处理

利用本地存储,进行vuex持久化处理

  1. getInfo
  2. setInfo
  3. removeInfo
    请添加图片描述

9.添加请求loading效果

统一在每次请求后台时,添加loading效果
好处:

  1. 节流处理:防止用户在一次请求还没回来之前,多次进行点击,发送无效请求。
  2. 友好提示:告知用户,目前是在加载中,请耐心等待,用户体验会更好
    实操步骤:
    (1)请求拦截器中,每次请求,打开loading
    (2)响应拦截器中,每次响应,关闭loading

10.页面访问拦截

对于支付页,订单页,必须用户登录才能访问,游客不能进入的空间,需要做拦截处理
路由导航守卫-全局前置守卫

  1. 所有的路由一旦被匹配到,都会先经过前置守卫放行。
  2. 只有前置守卫放行,才会真正解析渲染组件,看到页面内容
router.beforeEach((to, from, next) => {// to: Route: 即将要进入的目标 路由对象// from: Route: 当前导航正要离开的路由//next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。
})

11.首页

  1. 首页-静态结构准备&动态渲染
    静态结构->封装接口-> 页面调用->动态渲染
  2. 搜索-历史记录管理
    (1)搜素历史基本渲染
    (2)点击搜索添加历史
    若之前没有关键字,则追加到最前面
    若之前有关键字,则先移除,在追加
    (3)清空历史:添加清空图标,可以清空
    (4)持久化:刷新历史不丢失

12.商品详情页

获取商品评价

export const getProComments = (goodsTd, limit) = > {return request.get('/comment/listRows', {params: {goodsId,limit}})
}

加入购物车,唤起弹层
请添加图片描述
请添加图片描述

13.购物车模块

请添加图片描述

1.编辑切换状态,删除功能

删除购物车数据

async delSelect (content) {const selCartList = context.getters.selCartListconst cartTds = selCartList.map(item => item.id)await delSelect(cartIds)Toast('删除成功')
}

相关文章:

vue学习6

1. 智慧商城 1. 路由设计配置 单个页面&#xff0c;独立展示的&#xff0c;是一级路由 2.二级路由配置 规则&组件配置导航链接配置路由出口 <template><div id"app"><!--二级路由出口--><router-view></router-view><van-…...

线程池以及日志、线程总结

一、线程池以及日志 1、基础线程池写法 主线程在main函数中构建一个线程池&#xff0c;初始化(Init)后开始工作(Start) 此时线程池中每个线程都已经工作起来了&#xff0c;只是任务队列中任务为空&#xff0c;所有线程处于休眠状态(通过线程同步中的条件变量实现&#xff0c…...

Vue 响应式渲染 - 过滤应用

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue响应式渲染综合 - 过滤应用 目录 过滤应用 引入vue Vue设置 设置页面元素 模糊查询过滤实现 函数表达式实现 总结 过滤应用 综合响应式渲染做一个输入框&#xff0c;用来实现&#xff1b;搜索输入框关键词符合列表。…...

【ThreeJS Basics 1-3】Hello ThreeJS,实现第一个场景

文章目录 环境创建一个项目安装依赖基础 Web 页面概念解释编写代码运行项目 环境 我的环境是 node version 22 创建一个项目 首先&#xff0c;新建一个空的文件夹&#xff0c;然后 npm init -y , 此时会快速生成好默认的 package.json 安装依赖 在新建的项目下用 npm 安装依…...

银行国际结算

银行国结项目&#xff0c;即国际结算项目&#xff0c;是银行业务中的重要组成部分&#xff0c;它涉及跨国界的货币收付和资金转移。 一、银行国结项目的定义 银行国结项目是指银行为国际贸易、投资等活动提供的国际结算服务&#xff0c;包括各种国际支付和资金清算业务。这些…...

Go语言构建微服务:从入门到实战

引言 在云原生时代&#xff0c;微服务架构已成为构建复杂分布式系统的首选方案。Go语言凭借其卓越的并发支持、简洁的语法和高效的运行时&#xff0c;成为微服务开发的利器。本文将深入探讨如何用Go构建健壮的微服务系统&#xff0c;并通过完整案例演示关键实现细节。 一、微…...

深入理解动态代理

为什么需要动态代理 对于代码的增强逻辑我们是清楚具体实现的,一种方式是增强逻辑作为委托类,被其他业务类调用, 这样会有很多重复代码,而且,当需要根据动态参数来决定增强逻辑时,重复代码会更多,逻辑会更不清晰 二,也是动态代理产生的原始需求,解决类爆照问题, 所以…...

私有属性和方法(python)

一、私有属性&#xff08;属性名前面加两个短下划线&#xff09; &#xff08;一&#xff09;私有属性与公有属性区别 公有属性&#xff1a;在类里面和外面均可以访问和修改 私有属性&#xff1a;需要用set方法才能修改&#xff0c;get方法才能访问 &#xff08;二&#xf…...

Cherry Studio之DeepSeek联网/本地,建属于自己的AI助理!

上一篇文章&#xff0c;讲了DeepSeek-R1部署到本地的方法。这一篇文章&#xff0c;我们让DeepSeek再一次升级&#xff0c;通过图形化界面来交互&#xff0c;从而变成我们的AI助理&#xff0c;让DeepSeek R1发挥最大实力&#xff01; 首选需要借助硅基流动的API接口&#xff0c…...

TcpClientTest

ClientTest&#xff1a; using System; using System.Net.Sockets; using System.Text;class TcpClientTest {static void Main(string[] args){try{// 创建一个TcpClient实例并连接到服务器 TcpClient client new TcpClient("1vg5062570.51mypc.cn", 43319);//1v…...

IGBT的两级关断

IGBT&#xff08;绝缘栅双极型晶体管&#xff09;的两级关断&#xff08;Two-stage turn-off&#xff09;是一种优化关断过程的方法&#xff0c;主要用于减少关断时的电压过冲和dv/dt&#xff08;电压变化率&#xff09;过高的问题&#xff0c;特别是在大功率应用中&#xff08…...

【STM32】ADC

本次实现的是ADC实现数字信号与模拟信号的转化&#xff0c;数字信号时不连续的&#xff0c;模拟信号是连续的。 1.ADC转化的原理 模拟-数字转换技术使用的是逐次逼近法&#xff0c;使用二分比较的方法来确定电压值 当单片机对应的参考电压为3.3v时&#xff0c;0~ 3.3v(模拟信号…...

从MyBatis-Plus看Spring Boot自动配置原理

一、问题引入&#xff1a;神秘的配置生效之谜 当我们使用MyBatis-Plus时&#xff0c;只需在pom.xml中添加依赖&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3…...

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 0基础…...

雪花算法应用

什么是雪花算法&#xff1f; 雪花算法是由 Twitter 开源的分布式 ID 生成算法&#xff0c;用于生成 64 位的长整型唯一 ID。其结构如下&#xff1a; - 1 位符号位&#xff1a;始终为 0 - 41 位时间戳&#xff1a;精确到毫秒 - 10 位工作机器 ID&#xff1a;包含 5 位数据中心 …...

Chapter3:结构化程序设计

参考书籍&#xff1a;《C#边做边学》&#xff1b; 3.结构化程序设计 3.1 结构化程序设计的3种基本结构 顺序结构&#xff1a;先执行 A {\rm A} A语句&#xff0c;再执行 B {\rm B} B语句&#xff0c;两者是顺序执行的关系&#xff1b; 选择结构&#xff1a;根据所定选择条件为…...

白话文实战Nacos(保姆级教程)

前言 上一篇博客 我们创建好了微服务项目,本篇博客来体验一下Nacos作为注册中心和配置中心的功能。 注册中心 如果我们启动了一个Nacos注册中心,那么微服务比如订单服务,启动后就可以连上注册中心把自己注册上去,这过程就是服务注册。每个微服务,比如商品服务都应该注册…...

c语言函数学习

C语言函数学习笔记&#xff1a;从入门到实践 一、什么是函数&#xff1f; 函数是C语言中用于封装特定功能的代码块&#xff0c;是模块化编程的核心。通过函数可以实现&#xff1a; 代码复用&#xff1a;避免重复编写相同逻辑 逻辑清晰&#xff1a;将复杂程序分解为多个小模块…...

linux利用nfs服务器,实现数据和windows环境拷贝

1. 在Linux上设置NFS服务器 1.1 安装NFS服务器软件 首先&#xff0c;你需要在Linux服务器上安装NFS服务器软件。假设你使用的是基于Debian的系统&#xff08;如Ubuntu&#xff09;&#xff0c;可以按照以下步骤操作&#xff1a; sudo apt update sudo apt install nfs-kerne…...

智能理解 PPT 内容,快速生成讲解视频

当我们想根据一版 PPT 制作出相对应的解锁视频时&#xff0c;从撰写解锁词&#xff0c;录制音频到剪辑视频&#xff0c;每一个环节都需要投入大量的时间和精力&#xff0c;本方案将依托于阿里云函数计算 FC 和百炼模型服务&#xff0c;实现从 PPT 到视频的全自动转换&#xff0…...

FFmpeg + OpenGL ES 美颜相机教程大纲

做OpenGL和FFmpeg也有很长一段时间了&#xff0c;最近打算结合FFmpegOpenGL ES做一期视频教程&#xff0c;下面是完整视频教程大纲。最终的项目实战效果是实现一款美颜相机。教程分为理论讲解和实战开发两部分&#xff0c;适合有一定编程基础的开发者。课程计划是免费发布在B站…...

IEC61850标准下的数据和数据模型服务的详细介绍

目录 一、摘要 二、概述 三、详细介绍 1、读服务器目录(GetServerDirectory) 2、读逻辑设备目录(GetLogicalDeviceDirectory) 3、读逻辑节点目录(GetLogicalNodeDirectory) 4、读全部数据值(GetAllDataValues) 5、读数据值(GetDataValues) 6、设置数据值(SetDataValues…...

【3.Git与Github的历史和区别】

目录 Git的历史和Github的区别本质和功能 Git的历史和Github的区别 Git是由Linux内核的创造者Linus Torvalds于2005年创建的。当时&#xff0c;Linux内核开源项目使用BitKeeper作为版本控制系统&#xff0c;但2005年BitKeeper的商业公司终止了与Linux社区的合作&#xff0c;收…...

前端页面添加水印

前端页面添加水印 主要功能说明&#xff1a; 这是一个用于添加页面水印的工具函数水印会以半透明的形式显示在页面上&#xff0c;并且会重复平铺水印文字会有-15度的倾斜角度水印会覆盖整个页面&#xff0c;但不会影响页面的正常交互每次调用函数时会先删除已存在的水印&…...

Left side cannot be assigned to

Delphi XE E2064 Left side cannot be assigned to 错误解决方法-CSDN博客 Delphi XE E2064 Left side cannot be assigned to 错误解决方法 1. 起源 此问题源于[秋风人事档案管理系统]用Delphi XE重编译中所发现。 快十年了&#xff0c;当初Delphi 7所编写项目&#xff0c…...

R语言LCMM多维度潜在类别模型流行病学研究:LCA、MM方法分析纵向数据

全文代码数据&#xff1a;https://tecdat.cn/?p39710 在数据分析领域&#xff0c;当我们面对一组数据时&#xff0c;通常会有已知的分组情况&#xff0c;比如不同的治疗组、性别组或种族组等&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 然而&#xff0c;…...

伺服使能的含义解析

前言&#xff1a; 大家好&#xff0c;我是上位机马工&#xff0c;硕士毕业4年年入40万&#xff0c;目前在一家自动化公司担任软件经理&#xff0c;从事C#上位机软件开发8年以上&#xff01;我们在开发C#的运动控制程序的时候&#xff0c;一个必要的步骤就是对伺服上使能&#…...

ModuleJS 与 CommonJS 混用的两种解决方案

目录 方案一 方案二 统一使用 ModuleJS 统一使用CommonJS 方案一 使用构建工具&#xff0c;webpack、vite等系列构建工具。这些构建工具底层则会将两种不同的系统模块语言转为同一种语言&#xff0c;然后代码也能正常执行。 方案二 如果你可以修改文件的文件后缀&#xf…...

5. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Nacos

一、什么是Nacos Nacos 是阿里巴巴开源的一款云原生应用基础设施&#xff0c;它旨在简化微服务架构中服务治理和配置管理的复杂性。通过 Nacos&#xff0c;服务在启动时可以自动注册&#xff0c;而其他服务则可以通过名称来查找并访问这些注册好的实例。同时&#xff0c;Nacos…...

VUE项目中实现权限控制,菜单权限,按钮权限,接口权限,路由权限,操作权限,数据权限实现

VUE项目中实现权限控制&#xff0c;菜单权限&#xff0c;按钮权限&#xff0c;接口权限&#xff0c;路由权限&#xff0c;操作权限&#xff0c;数据权限实现 权限系统分类&#xff08;RBAC&#xff09;引言菜单权限按钮权限接口权限路由权限 菜单权限方案方案一&#xff1a;菜单…...