uni-app —— 小程序加入购物车实现过程

Posted Bonsoir777

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uni-app —— 小程序加入购物车实现过程相关的知识,希望对你有一定的参考价值。

文章目录

  • 前言
  • 一、示意图
  • 二、整体实现思路
  • 实现过程
    • 1.加入购物车
    • 2.获取当前用户购物车信息
    • 3.解决数据获取不及时的问题
  • 总结


前言

前文已经讲解了如何实现商品规格的选择,那么接下来就应该将用户选中的商品加入购物车啦!那么如何实现呢?请看下文!


一、示意图

二、整体实现思路

  • 首先你得知道购物详情页面是你选中的那条数据
  • 那么接下来就是“加入购物车”的点击事件了,这个事件需要调用后端给我们提供的 “加入购物车”接口,我们的增删改查都要调用相应的接口完成相应的动作。
  • 此时我们的加入购物车,数据存在了数据库里。但是!!!数据存放在数据库中不行对吧,我们需要在购物车页面把数据库的数据拿出来。那么,这一步也需要调用“获取当前用户购物车列表”的接口(请注意!!是当前用户,那就说明在加入购物车时应该判断用户是否登录!)拿到接口之后,就是把当前用户购物车的数据渲染在页面上啦!

三、实现过程

1.加入购物车

1.生成调用加入购物车接口的方法

// 引入request请求方法
import request from '../utils/request.js';

// 加入购物车的方法
export const addincar = (
	shop_id,
	skus_type,
	num
) => 
	return request(
		url: '/cart',
		method: 'POST',
		header: 
			token: true
		,
		data: 
			shop_id,
			skus_type,
			num
		
	)

2.加入购物车时调用相应接口,将数据添加到数据库中

// 加入购物车的点击事件
			Addshopcar() 
				console.log('加入购物车操作')
				let skus_type = this.detailList.sku_type
				let shop_id = skus_type === 0 ? this.detailList.id : this.detailList.goodsSkus[this.findValue].id
				let num = this.value
				addincar(
					skus_type,
					shop_id,
					num
				).then((response) => 
					console.log('成功获取书!')
					console.log(response);
					if (response.msg == "ok") 
						uni.$emit('updateshopcar');
						uni.switchTab(
							url: '../../pages/cart/cart'
						)
					
				)
			,

2.获取当前用户购物车信息

1.生成获取当前用户购物车信息的方法

// 获取当前用户的购物车列表信息
export const getShopcarinfo = () => 
	return request(
		url: '/cart',
		header: 
			token: true
		
	)

2.调用获取当前用户购物车信息的方法

// 获取当前用户购物车信息列表
			Shopcarinfo() 
				getShopcarinfo().then((response) => 
					console.log(response, '购物车列表')
					this.shopcarList = response.data;
					this.$store.dispatch('cart/updateshopList', this.shopcarList);
				)
			

3.在vuex中进行数据的增删改查

// 获取当前用户购物车列表信息
		updateshopList(context, value) 
			console.log(value);
			context.commit('UPDATESHOPLIST', value);
		,
		// 退出登录时清空购物车数据
		resetShopcar(context) 
			context.commit('RESETSHOPCAR');
		
	// 获取当前用户的购物车列表
		UPDATESHOPLIST(state, value) 
			state.list = value || [];
			uni.$on('updateshopcar')
			Badge.TabBarBadge(state.list.length)
		,

3.解决数据获取不及时的问题

这里的数据获取不及时的问题,指的是你明明点击了加入购物车,页面却没有相应的渲染数据,这里可以用uni-app中的触发全局的自定义事件,解决这个问题

3.1 uni.$emit(eventName,OBJECT)

触发全局的自定义事件,附加参数都会传给监听器回调函数。

属性类型描述
eventNameString事件名
OBJECTObject触发事件携带的附加参数

3.2 uni.$on(eventName,callback)

监听全局的自定义事件,事件由 uni.$emit 触发,回调函数会接收事件触发函数的传入参数。

属性类型描述
eventNameString事件名
callbackFunction事件的回调函数


总结

以上就是今天所要分享的内容,最后依旧诚挚祝福屏幕前的你健康快乐、平安喜乐!

微信小程序结合原生JS实现电商模板

接 《微信小程序结合原生JS实现电商模板(一)》,在首页列表加入购物车到购物和模块增删数量,动态计算商品价格实现后,本次提交主要实现了商品详情(还不完善)简单页面,从商品详情页跳转到购物车,加入购物车和立即购买的逻辑实现;购物车结算功能完善(需添加收货地址才能结算,并完善新增、编辑、杉树地址相关操作);在分类模块实现了商品的分类展示以及不同分类对应的数据流显示,以及进入详情的逻辑操作。请不要吝啬你的发财手帮我star或转发一下,谢谢了。下面附上目前的效果:(切图自己抠的,请见谅。)

技术图片技术图片技术图片技术图片技术图片技术图片技术图片技术图片技术图片 

附上源码地址: https://github.com/WangHao1221/wh-retailers,谢谢大家的转发和赞!

以上是关于uni-app —— 小程序加入购物车实现过程的主要内容,如果未能解决你的问题,请参考以下文章

uni-app--》如何实现网上购物小程序(上)?

uni-app第二节-vuex实现购物车

微信小程序结合原生JS实现电商模板

zara小程序怎么加入购物车

uni-app——小程序实现本地图片的上传以及身份证的智能识别

uni-app小程序实现微信在线聊天(私聊/群聊)