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

做网站需要注意百度指数明星人气榜

做网站需要注意,百度指数明星人气榜,企业网站开发教程,国家有规定必须做可信网站验证购物车修改 uuid临时游客身份购物车部分功能全选修改商品数量修改商品勾选状态删除产品 uuid临时游客身份 请求数据仓库发起请求 ->问题:获取不到购物车数据? 所以需要一个身份,告诉服务器是谁存的数据?是要获取谁的数据&…

购物车修改

    • uuid临时游客身份
    • 购物车部分功能
      • 全选
      • 修改商品数量
      • 修改商品勾选状态
      • 删除产品

uuid临时游客身份

请求数据+仓库发起请求
->问题:获取不到购物车数据?
在这里插入图片描述
所以需要一个身份,告诉服务器是谁存的数据?是要获取谁的数据?

//引入
import {v4 as uuidv4} from 'uuid';
//生成具有唯一标识的字符串作为id
uuid_token = uuidv4();

utils文件存放与业务逻辑无关的公共工具函数、辅助方法或通用逻辑
将生成一个随机游客身份,将 游客身份 UUID 放在 HTTP 请求头 中随每次请求发送给后端,后端在所有接口中都能识别同一游客,并关联其行为数据

  1. 为了保证存储一次游客身份的永久性,每次访问都是通过游客身份而不是每次重新生成一个新的游客身份----通过localStorage
//uitl
import {v4 as uuidv4} from 'uuid';export const getUUID = ()=>{let uuid_token = localStorage.getItem('UUIDTOKEN');if(!uuid_token){//本地没有存储,则生成一个uuid_token = uuidv4();//然后存储到本地localStorage.setItem('UUIDTOKEN',uuid_token);}return uuid_token;
}
  1. 在仓库中存储uuid,uuid_token=getUUID()
  2. 把uuidToken加在请求头中:在axios请求拦截器rquest.use((config)=>{})中,请求头添加字段(userTempId)config.header.userTempId = store.state.detail.uuid_token

购物车部分功能

全选

  • every用于判断购物车是否已经全选

every(item=>{表达式})遍历数组,若每项全都满足条件则返回true,否则返回false

isAllCheck(){return this.cartInfoList.every(item=>item.isChecked===1)
}

修改商品数量

绑定handler函数,参数(type,disNum,cart)分别表示:操作行为、数量变化(正/负/0)、cart是商品信息

  • 减少:@click=“handler(‘minus’,-1,cartInfo)”
  • 输入框:@change=“handler(‘change’,$event.target.value,cartInfo)”
  • 增加:@click=“handler(‘add’,1,cartInfo)”

添加节流操作:当快速多次修改产品数量时,会出现负数/0的现象

handler:throttle(async function(type,disNum,cart){if(type === 'minus') {//当商品数量为1时,不可再减少if(cart.skuNum === 1){return;}}if(type === 'change'){//输入内容不合法时if(isNaN(disNum * 1)  || disNum <= 0){disNum = 0;}else{//parseInt取整计算差值disNum = parseInt(disNum) - cart.skuNum}}//加按钮disNum不需要改变try{//更新服务器数据await this.$store.dispatch('addOrUpdateShopCart',{skuId:cart.skuId,skuNum:disNum})//再次获取服务器新的数据await this.$store.dispatch("getCartList")}catch (error){alert(error)}
},500),

修改商品勾选状态

  1. 封装删除商品的接口reqUpdateCheckedById函数
export const reqUpdateCheckedById = (skuId,isChecked)=>requests({url:`/cart/checkCart/${skuId}/${isChecked}`,method:'get'});
  1. 仓库写action发送请求
async updateCheckedById({commit},{skuId,isChecked}){let result = awiat reqUpdateCheckedById(skuId,isChecked);if(result.code===200){return 'ok';}else{return Promise.reject(new Error('fail'));}
}
  1. 绑定change事件触发updateChecked
//传入商品信息cart
//event参数获取当前勾选状态
async updateChecked(cart,event){
try{
//如果获取成功则再次获取服务器数据let isChecked = event.target.checked?1:0;await this.$store.dispatch("reqUpdateCheckedById",{cart,isChecked});this.getDate();}catch(error){alert(error.message);}
}

删除产品

通过后台提供的删除单个商品的接口,传入商品skuId,和之前差不多,我就省略了封装接口函数,然后在actions中封装成发送请求函数async deleteCartListBySckuId({commit},skuId){……}最后组件里面绑定事件派发actions等一样的操作。

当需要删除全部勾选的产品,该怎么做呢?没有相应的接口处理

当然可以method中遍历多次dispatch一个个删除,在这里我们将批量删除封装为actions函数deleteAllCheckedCart

  • 首先需要知道:deleteAllCheckedCart(context){console.log(context)}中conext是什么?
    conext实际上是个小仓库
    commit【提交mutations修改state】getters【计算属性】 dispatch【派发actions】在这里插入图片描述
    如此我们便可以拿到想要的购物车数据通过getters,然后也可以派发actions
    注意解构出所需要的getters和dispatch
deleteAllCheckedCart({getters,dispatch}){//forEach遍历cartInfoListlet PromiseAll = [];getters.cartList.cartInfoList.foEach(item=>{//需要过滤掉没有被勾选的产品let promise = item.isChecked==1?dispatch('deleteCartListBySckuId',item.skuId):'';//dispatch返回一个Promise//那么每次删除一个产品都会返回一个Promise//那么可以把每个对象放到promise.all中PromiseAll.push(promise);});//返回结果是失败还是成功return Promise.all(PromiseAll);
}
  • Promise.all()
    promise.all([p1,p2,p3])中是个数组,每一个p1、p2、p3、都是一个promise对象,如果有一个promise返回的是失败,那么都是失败,都成功才会成功

组件methods中:

async deleteAllCheckedCart(){try{await this.$store.dispatch('deleteAllCheckedCart');//再次发送请求获取购物车列表this.getDate();}catch(error){alert(error.message);}
}
http://www.dtcms.com/wzjs/430817.html

相关文章:

  • 怎么介绍自己做的网站seo刷排名工具
  • 网站用开源cms网站权重怎么查
  • 成都网站建设设计2345网址导航怎么卸载
  • 好看的网站哪里找武汉网站seo推广公司
  • 网站建设如何来选择空间网络公司有哪些
  • 做网站服务器用谁的网络推广外包公司
  • 周年庆网站要怎么做免费合作推广
  • 山东网站建设工作室网络营销主要特点有哪些
  • wordpress密码字典哪个网站学seo是免费的
  • 怎么在腾讯云搭建wordpressseo对网店推广的作用
  • wordpress移动客户端厦门seo哪家强
  • 广东网站建设英铭科技网络推广发展
  • 虚拟主机如何做网站舆情分析报告模板
  • 建设网站的成本浏览器正能量网站免费
  • 吉安市网站制作简单网页制作
  • 阿里云备案 网站备案百度seo排名曝光行者seo
  • 个人的小说网站如何做友情链接怎么添加
  • 网站怎么做双机房切换宁波seo费用
  • 怎么做属于自己的网站百度极速版免费下载
  • 海外音乐类网站做的比较好的杭州企业seo
  • 聊城哪儿做网站便宜手游推广代理平台有哪些
  • tp5网站文档归档怎么做微商怎么引流被别人加
  • 网站建设佛google本地搜索
  • 中国建设积分商城网站学网络运营在哪里学比较好
  • 建立自己网站要多少钱互联网营销师教材
  • 深圳做网站排名哪家好国外浏览器搜索引擎入口
  • 郑州高端网站seo技术培训学校
  • 定制网站建设服务官网站内推广内容
  • 网站做权重百度新闻网站
  • 成都网站开发建设网络推广平台