Vue电商项目--详情页面完成

这篇具有很好参考价值的文章主要介绍了Vue电商项目--详情页面完成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

放大镜操作上

<script>        
  var mySwiper = new Swiper ('.swiper', {
    direction: 'vertical', // 垂直切换选项
    loop: true, // 循环模式选项
    
    // 如果需要分页器
    pagination: {
      el: '.swiper-pagination',
    },
    
    // 如果需要前进后退按钮
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    
    // 如果需要滚动条
    scrollbar: {
      el: '.swiper-scrollbar',
    },
  })        
  </script>

 首先搞这个轮播图的,先把轮播图初始化。就是把官网的复制下来,删除一些,我们不需要的内容

Vue电商项目--详情页面完成

Vue电商项目--详情页面完成

但是存在bug,它默认只存在一个

Vue电商项目--详情页面完成看官网解决问题slidesPerView_Swiper参数选项 

Vue电商项目--详情页面完成

  // 设置图片的个数
          slidesPerView:3,
          // 每次切换一个图片
          slidesPerGroup:1

Vue电商项目--详情页面完成

现在实现了一个点击添加active样式的效果。除了这个我们还需要添加:通知兄弟组件,当前索引是几,然后上面展示相应的图片

Vue电商项目--详情页面完成 然后接收它

Vue电商项目--详情页面完成

放大镜结束

为什么我们点击的永远是第一张呢?这是因为.skuImageList[0]写死了索引,它只能为第一张,我们应该定义的变量来保存索引,保障这是活的索引

Vue电商项目--详情页面完成

ok,这样就成功了。此时我们需要考虑一下这个放大镜是如何实现的 

就是鼠标移入,然后让这个蒙版跟着鼠标移动

Vue电商项目--详情页面完成

Vue电商项目--详情页面完成

e.offsetX-mask.offsetWidth/2就是这个打钩的距离

Vue电商项目--详情页面完成

这样就能动了,但是没有约束范围

Vue电商项目--详情页面完成但是还有bug,那就是大图并没有发生变化,我们需要采用同样的方式设置大图

Vue电商项目--详情页面完成 Vue电商项目--详情页面完成

 handler(e){
        let mask=this.$refs.mask
        let big=this.$refs.big
        let left =e.offsetX-mask.offsetWidth/2
        let top=e.offsetY-mask.offsetHeight/2
        // 约束范围
        if(left<=0) left=0;
        if(left>=mask.offsetWidth) left=mask.offsetWidth
        if(top<=0) top=0;
        if(top>=mask.offsetWidth) top=mask.offsetHeight
        // 修改mask的left|top的值
        mask.style.left=left+'px'
        mask.style.top=top+'px'
        big.style.left=-2*left+'px'
        big.style.top=-2*top+'px'
      }

购买产品个数的操作

Vue电商项目--详情页面完成

完成了这一块点击按钮++,--效果

Vue电商项目--详情页面完成 Vue电商项目--详情页面完成 

 changeSkuNum(e){
       let value=e.target.value*1
      //  如果用户输入进来的非法,出现nan或者小于1
       if(isNaN(value)||value<1){
        this.skuNum=1
       }else{
        // 不能出现小数
        this.skuNum=parseInt(value)
       }
      }

加入购物车

就是要告诉服务器,谁加入到服务器,向服务器发请求。然后进行路由跳转

添加到购物车(对已有物品进行数量改动)接口说明

请求地址

/api/cart/addToCart/{ skuId }/{ skuNum }

请求方式

POST

参数类型

参数名称

类型

是否必选

描述

skuID

string

Y

商品ID

skuNum

string

Y

商品数量

正数代表增加

负数代表减少

返回示例

成功:

{

    "code": 200,

    "message": "成功",

    "data": null,

    "ok": true

}

Vue电商项目--详情页面完成 先写接口

export const reqAddOrUpdateShopCart=(skuId,skuNum)=>requests({url:`/api/cart/addToCart/${skuId}/${skuNum }`,method:'post'})

 先绑定加入购物车的函数

1.发请求--将产品加入数据库(通知服务器)

2.服务器存储成功--进行路由跳转传递参数

3.失败,给用户进行提示

Vue电商项目--详情页面完成首先,我们需要先拿到我们数据,然后在配送数据

Vue电商项目--详情页面完成然后发现了错误,404,查看一下应该是服务器接口的问题,果然加了/api导致错误 

Vue电商项目--详情页面完成 Vue电商项目--详情页面完成

 这样成功发起请求了

 这里要注意服务器写入数据成功,并没有返回其他的数据,只返回code=200,表示这次操作成功

因为服务器没有返回其余数据,因此咋们不需要三连环存储数据

加入购物车成功与失败的判断

就是原先我们配发了一个action,也拿到了服务器的请求。但我们还要加入购物车成功与失败的判断,成功进行路由的跳转,失败就提示信息

Vue电商项目--详情页面完成它返回的是一个 是Promise对象,那就有失败和成功的回调。因为上面的代码就是调用仓库的addOrUpdateShopCart,这个方法加上asyn,返回的一定是一个Promise对象

Vue电商项目--详情页面完成Vue电商项目--详情页面完成 注意的一点就是我们要使用try……catch……监听异常 

加入购物车操作

Vue电商项目--详情页面完成先复制写好的成功后跳转的路由的组件。然后注册路由

Vue电商项目--详情页面完成 Vue电商项目--详情页面完成  

路由传递参数结合会话存储

就是在路由跳转的时候还需要将产品的信息带给下一级的路由组件

Vue电商项目--详情页面完成

一些简单的数据skuNum,通过query形式给路由组件传递过去

产品信息的数据【比较简单:skuInfo】通过会话存储(不持久化,会话结束数据在消失)

本地存储|会话存储:一般存储的是字符串

Vue电商项目--详情页面完成

Vue电商项目--详情页面完成 存储到会话中 

Vue电商项目--详情页面完成 Vue电商项目--详情页面完成然后计算属性加工一下,渲染到页面上就可以了 

购物车静态组件与修改

Vue电商项目--详情页面完成之前完成了跳转到购物车页面,但我们现在点击要回去

Vue电商项目--详情页面完成 当然要把id给带回去,然后完成点击去购物车结算 >模块

Vue电商项目--详情页面完成 先捞组件,然后配置路由

Vue电商项目--详情页面完成 修改静态组件        

 Vue电商项目--详情页面完成

 搞定 文章来源地址https://www.toymoban.com/news/detail-467209.html

到了这里,关于Vue电商项目--详情页面完成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 20230401----重返学习-冒泡相关事件-拖拽-放大镜

    mouseenter/mouseleave与mouseover/mouseout mouseover/mouseout 有冒泡,忽略层级之间的关系 mouseenter/mouseleave 没冒泡,不会忽略层级之间的关系 事件委托 事件委托: 也叫事件代理,将绑定的事件委托给祖先元素,祖先元素监听事件,并利用e.target来分配给当前元素 原理是: 事件冒泡机制 事

    2023年04月08日
    浏览(40)
  • 【Cocos Creator 3.x】实现放大镜效果

    在某一些类型的游戏,如果鉴宝类的游戏、找茬类的游戏、射击瞄准类的游戏等,对于游戏场景中某个部分进行放大缩小,是必不可少的功能,那么如何实现放大镜的效果呢? 核心部分,是对于摄像机(Camera)的运用。首先,需要了解摄像机的原理,和现实生活中的照相机一

    2024年01月21日
    浏览(43)
  • 记录--js小练习(弹幕、 电梯导航、 倒计时、 随机点名、 购物放大镜)

    弹幕 电梯导航 倒计时 随机点名 购物放大镜 效果预览 功能:输入弹幕内容,按下回车显示一条弹幕(弹幕颜色、字体随机生成) 思路:设置按钮抬起事件,在事件中判断如果按下的是回车键则将输入框中替换掉敏感词的数据追加到标签中,字体的颜色、大小、位置按照生成

    2024年02月04日
    浏览(61)
  • 前端小技巧:学会通过CSS Hover和JS实现图片放大镜效果

    数据来源: ChatGPT 今天,我们来看一个鼠标悬停出现图片放大镜效果,这是一个比较实用且炫酷的纯CSS和JS实现的页面效果。 HTML HTML代码非常简单,我们只需要一个div容器,内部嵌入一张图片,再添加一个用来显示放大镜的div元素。 CSS CSS代码是实现放大镜效果的重要部分,

    2024年02月02日
    浏览(73)
  • Vue2电商前台项目——完成Detail详情页模块业务

    Vue基础知识点击此处——Vue.js 这里已经滚瓜烂熟了哈哈哈哈。。。。 1、准备静态页面 2、拆分组件,配置路由信息 3、写接口,使用Vuex存储数据 4、把服务器数据渲染到页面上 这里把详情页Detail组件放到路由组件pages里 src/pages/Detail/index.vue 点击商品图片 = 路由跳转并传参

    2024年02月09日
    浏览(40)
  • 黑马程序员前端 Vue3 小兔鲜电商项目——(七)详情页

    模板代码 创建 srcviewsDetailindex.vue 文件,添加以下代码: 配置路由 在 srcrouterindex.js 中添加对应路由【 /detail/{goodId} 】: 链接跳转 对 srcviewsHomecomponentsHomeNew.vue 文件及其他涉及商品信息的页面修改路由跳转: 封装接口 在 srcapisdetail.js 文件中封装接口用于获取商品信息

    2024年02月10日
    浏览(58)
  • 43--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-课程详情页面、搜索页面以及后台设计

    1.视频播放功能 下载第三方插件:vue-video-player 使用步骤: 第一步: cnpm install vue-video-player 第二步:在main.js中引入

    2024年02月09日
    浏览(55)
  • 黑马程序员前端 Vue3 小兔鲜电商项目——(八)登录页面

    登录页面的主要功能就是表单校验和登录登出业务。 account password cdshi0080 123456 cdshi0081 123456 cdshi0082 123456 cdshi0083 123456 cdshi0084 123456 cdshi0085 123456 cdshi0086 123456 cdshi0087 123456 cdshi0088 123456 模版代码 在 srcviewsLoginindex.vue 中添加登录页代码: 配置路由跳转 修改 srcviewsLayoutcompon

    2024年02月10日
    浏览(53)
  • 【项目复盘Vue2-移动端】IOS使用Vant表单组件输入框获取焦点后放大页面,安卓软键盘遮挡问题

    使用Vue+Vant做的移动端项目,在登录界面使用Vant的表单组件van-input时发现在真机测试IOS会出现获取焦点输入时会撑大原页面的宽度,每一个输入框获取到焦点就会页面就会放大一点点,需要双指缩放才能回到原来的比例。 经过一番百度后发现: 在移动端开发项目中,发现页

    2024年02月12日
    浏览(68)
  • 【电商项目实战】基于SpringBoot完成首页搭建

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《电商项目实战》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包