Uniapp商城项目实战技巧

1.配置网络请求

由于平台的限制,小程序项目中不支持 axios,而且原生的 wx.request() API 功能较为简单,不支持拦截器等全局定制的功能。因此,建议在 uni-app 项目中使用 @escook/request-miniprogram 第三方包发起网络数据请求。

请参考 @escook/request-miniprogram 的官方文档进行安装、配置、使用
官方文档: https://www.npmjs.com/package/@escook/request-miniprogram
最终,在项目的 main.js 入口文件中,通过如下的方式进行配置:

安装 npm install @escook/request-miniprogram
import{ $http }from'@escook/request-miniprogram'

uni.$http = $http
// 配置请求根路径
$http.baseUrl ='https://www.uinav.com'// 请求开始之前做一些事情
$http.beforeRequest=function(options){
  uni.showLoading({
    title:'数据加载中...',})}// 请求完成之后做一些事情
$http.afterRequest=function(){
  uni.hideLoading()}

2.封装 uni.$showMsg() 方法

当数据请求失败之后,经常需要调用 uni.showToast({ /* 配置对象 */ }) 方法来提示用户。此时,可以在全局封装一个 uni.$showMsg() 方法,来简化 uni.showToast() 方法的调用。具体的改造步骤如下:

  1. 在 main.js 中,为 uni 对象挂载自定义的 $showMsg() 方法:

// 封装的展示消息提示的方法
uni.$showMsg=function(title ='数据加载失败!', duration =1500){
  uni.showToast({
    title,
    duration,
    icon:'none',})}

2.今后,在需要提示消息的时候,直接调用 uni.$showMsg() 方法即可:

asyncgetSwiperList(){const{ data: res }=await uni.$http.get('/api/public/v1/home/swiperdata')if(res.meta.status !==200)return uni.$showMsg()this.swiperList = res.message
}
  1. CSS属性美化样式

// 文字不允许换行(单行文本)white-space: nowrap;
// 溢出部分隐藏overflow: hidden;
// 文本溢出后,使用 ... 代替text-overflow: ellipsis;

2.将搜索关键词存入 historyList

// 2.1 直接把搜索关键词 push 到 historyList 数组中this.historyList.push(this.kw)

2.1 解决关键字前后顺序的问题

  1. data 中的 historyList 不做任何修改,依然使用 push 进行末尾追加

  1. 定义一个计算属性 historys,将 historyList 数组 reverse 反转之后,就是此计算属性的值:

// 注意:由于数组是引用类型,所以不要直接基于原数组调用 reverse 方法,以免修改原数组中元素的顺序// 而是应该新建一个内存无关的数组,再进行 reverse 反转return[...this.historyList].reverse()
// 保存搜索关键词为历史记录saveSearchHistory(){// this.historyList.push(this.kw)// 1. 将 Array 数组转化为 Set 对象constset=newSet(this.historyList)
// 2. 调用 Set 对象的 delete 方法,移除对应的元素set.delete(this.kw)
// 3. 调用 Set 对象的 add 方法,向 Set 中添加元素set.add(this.kw)
// 4. 将 Set 对象转化为 Array 数组this.historyList = Array.from(set)}

3. 使用过滤器处理价格


data 节点平级,声明 filters 过滤器节点如下:

filters:{// 把数字处理为带两位小数点的数字tofixed(num){returnNumber(num).toFixed(2)}}
  1. 在渲染商品价格的时候,通过管道符 | 调用过滤器:

<!-- 商品价格 --><viewclass="goods-price">¥{{goods.goods_price | tofixed}}</view>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Uniapp商城项目是一种基于Uniapp框架的电商平台,旨在为用户提供更便捷的购物体验。该项目包括商品展示、购物车、订单管理、支付等功能,同时支持多种平台,包括微信小程序、H5、安卓、苹果等。通过使用Uniapp,开发人员可以在一次编写代码的基础上完成多平台的开发,从而大大缩短了开发周期和减少了开发成本。 在Uniapp商城项目中,商品展示是最为重要的功能之一。用户可以通过商品分类或关键字搜索找到自己所需的商品,并查看详细的商品信息和图片。在商品详情页中,用户可以选择商品的规格、颜色、数量等进行下单购买。除了购买商品之外,用户还可以将商品加入购物车,方便随时查看和修改商品清单。 订单管理是另一个重要的功能。在下单之后,用户可以在订单中心中查看订单状态、发货信息、订单详情等。同时,Uniapp商城项目还支持多种支付方式,包括微信支付、支付宝支付等。 在开发Uniapp商城项目时,团队需要考虑到用户体验、数据安全、服务器性能等问题,以提供稳定、高效、安全的服务。此外,也需要与平台方进行合作,调用各种API接口,实现与第三方服务的交互。随着用户数量的增加,Uniapp商城项目也需要不断地进行扩展和升级,以满足用户不断变化的需求。 ### 回答2: Uniapp 是一款基于 Vue.js 开发的跨平台应用框架,可以实现一次编写,多个平台运行的效果。在商城项目中,Uniapp 可以实现多功能开发,包括商品展示、购物车、订单管理以及后台管理等。 对于商城的前端开发,Uniapp 提供了一套完整的组件库和 API 接口,可以帮助开发者快速开发各种功能。开发者只需要按照 Vue.js 的开发方式进行开发即可。 对于商城的后端开发,Uniapp 可以与各种后端技术进行协作,比如 node.js、PHP、Java 等。为了更好地实现后端与前端的数据交互,Uniapp 可以通过使用 RESTful API 接口进行交互。 在商城项目中,Uniapp 还可以实现多个平台的运行,比如 iOS、Android、H5 等。这使得开发者可以在不同的平台上快速迭代和部署项目。同时,Uniapp 还提供了一些便捷的调试和测试工具,可以帮助开发者更快速地开发和测试应用程序。 总之,Uniapp商城项目中有着广泛的应用,可以帮助开发者快速高效地完成项目开发,实现多平台应用的统一开发和运行,是一款非常有价值的跨平台应用框架。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值