资讯专栏INFORMATION COLUMN

6.18快要来临--家具电商大战一触即发

JeOam / 1910人阅读

摘要:微信小程序电商家具入门篇前言今年是小程序很火的一年,所以最近在自学微信小程序,所以打算自己撸一个小程序出来,由于自己才刚刚自学不久。先看这个效果吧代码如何获取登录微信的用户的头像和信息使用直接获取微信头像,昵称。

微信小程序---电商家具入门篇

前言

今年是小程序很火的一年,所以最近在自学微信小程序,所以打算自己撸一个小程序出来,由于自己才刚刚自学不久。就做了一个相对简单的家具小程序。当然在这其中也遇到了一些问题和bug,在这就和大家分享一下,这样才能帮助更多的朋友。如有不足之处,希望大家提出宝贵的建议哈。这样才能一起成长,一起进步。

简单介绍一下微信小程序

众所周知,随着越来越多的app出现在了App商城,导致手机下载多了app会导致手机卡,所以这时微信小程序腾空而出。只要用户扫一扫或者搜索一下就能打开应用,减少了我们下载app的次数。

开发环境:WXML(HTML),WXSS(CSS),Javascript

开发工具:vscode,微信开发者工具

开发流程:下载微信开发者工具之后注册一下就会有自己的AppID,微信小程序有官方的微信小程序开发文档 开发文档

接下来说说我做的小程序吧
万事开头难,关键是踏出第一步。在这里我将分享一下我实现过程以及在实际过程中遇到的坑。 首先先看看首页效果吧

代码实现,主页东西也不多,主要是布局问题。 wxss代码:

.img-box image{
  width: 100%;
  height: 100%;
}
.img-box image:after{
  content: "";
  position: absolute;
  bottom: 0;
  width: 100%;
  color: #fff;
  padding: 50px 20px;
}
1:家具的轮播效果实现

小程序的轮播实现是用了swiper组件,滑块视图容器里面有indicator-dots,autoplay,setinterval等属性,可以设置自动播放,时间间隔。 插入的图片可以用wx:for来循环。

wxml代码:


  
    
      
        
      
    
  

我这里把图片放在了js里面遍历。效果如图所示

2:navigate的跳转问题

在点击加入购物车以后,加入绑定事件本该跳转到另一个页面的,但是迟迟没有出现效果也没有报错,我以为我拼写或路径有问题,但我检查之后没有问题啊,后来终于发现了一个坑。 这里要跳转的是tabBar的页面,按照默认的跳转是不允许的,查看了一下开发文档才发现了问题的所在。

解决办法:把navigateTo换成switchTab就可以了 跳转有很多种方法,具体可以查看开发文档。跳转页面的api

3:商品如何加入购物车之后如何控制购买商品的数量并计算价格

本来想做的是点击图片进入详情再点击加入购物车就能保存到后台的购物车里 但是由于自学的知识有限,后端目前还没学,只能加入一个绑定事件跳转到购物车。

接下来计入正题:如何控制购物车购买的数量和计算总价?先在js里面定义一个cart空的数组,我们先把这个值赋给这个空数组,之后再取这个值。之后给商品的状态默认为选择状态,点击一下,就可以把状态变为取消。话不多说,之后计算出选择商品的总价。先看这个效果吧

js代码:

selectList(e){
    let selectAllStatus = this.data.selectAllStatus;
    const index=e.currentTarget.dataset.index;
    let carts=this.data.carts;
    const selected=carts[index].selected;
    carts[index].selected=!selected;
    selectAllStatus = carts[index].selected;
    // if( carts[index].selected=!selected){
    //   selectAllStatus:false;
    // }
    this.setData({
      carts,  
      selectAllStatus,
    });
    this.getTotalPrice();
  },
  deleteList(e) {
    const index = e.currentTarget.dataset.index;
    let carts = this.data.carts;
    carts.splice(index,1);
    this.setData({
      carts: carts
    });
    if(!carts.length){
      this.setData({
        hasList: false
      });
    }else{
      this.getTotalPrice();
    }
  },
  addCount (e){
    const index = e.currentTarget.dataset.index;
    let carts = this.data.carts;
    let num = carts[index].num;
    num++;
    carts[index].num = num
    this.setData({
      carts
    })
    this.getTotalPrice();
  },
  minuCount(e){
    const index = e.currentTarget.dataset.index;
    let carts = this.data.carts;
    let num = carts[index].num;
    if(num<=1) return false;
    num--;
    carts[index].num = num
    this.setData({
      carts
    });
    this.getTotalPrice();
  },
  selectAll(e){
    let selectAllStatus = this.data.selectAllStatus;
    selectAllStatus = !selectAllStatus;
    let carts =this.data.carts;
    for(let i=0;i
4:如何获取登录微信的用户的头像和信息

使用wx.getUserInfo直接获取微信头像,昵称。

我们在使用小程序wx.login API进行登录的时候,直接使用wx.getUserInfo是不能获取更多的信息的,如微信用户的openid。 我这里是用的第一种方法

wxml代码:


          
          
            
            {{userInfo.nickName}}
          
        
js代码:

onLoad: function () {
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUse){
      // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },
  getUserInfo: function(e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }

整体效果

最后
这个小程序还有一些功能还没有实现,比如购物车,用户信息的保存在后台的问题,以后等自学完后端的一些知识,我还是得把这个小程序完整的做出来,喜欢的话大家可以关注我的github,我们可以一起学习,一起搞基哈,也希望可以给我提出一些宝贵的意见

源文件:github地址 期待你的star和fork哦

第一次写文章,项目可能不是很好,表达的也未必清楚,请给新手多一点的鼓励,点个赞,留下你的建议吧

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95363.html

相关文章

  • 6.18快要来临--家具电商大战一触即发

    摘要:微信小程序电商家具入门篇前言今年是小程序很火的一年,所以最近在自学微信小程序,所以打算自己撸一个小程序出来,由于自己才刚刚自学不久。先看这个效果吧代码如何获取登录微信的用户的头像和信息使用直接获取微信头像,昵称。 微信小程序---电商家具入门篇 前言 今年是小程序很火的一年,所以最近在自学微信小程序,所以打算自己撸一个小程序出来,由于自己才刚刚自学不久。就做了一个相对简单的家具小程序。...

    phoenixsky 评论0 收藏0
  • 下一个互联网十年 云计算或成制胜法宝

    摘要:在互联网的第三个时代,也就是下一个互联网十年里,云计算将成为这场大战的制胜关键所在。就在前不久,亚马逊旗下的云计算服务平台宣布正式在中国商用。的杀入对于中国的云计算市场也是一大不可忽视的力量。  互联网的第一个时代我们定义为PC互联网,互联网的第二个时代我们定义为移动互联网,而互联网的第三个时代我们则定义为万物联网。当前国内的互联网正处于第二个时代向第三个时代过渡期,而云计算则是支撑起万物联...

    Yujiaao 评论0 收藏0
  • PaaS大战一触即发 Oracle剑拔弩张

    摘要:和联合总裁及董事会成员将在下周宣布更多的战略。曾在去年月的大会上宣布了公共云计划,其中包含了和的相关功能,以及云服务和数据库云服务。目前已经表示将会把和整合进自身的公有云之中。但截至到目前,这些组件仍然处在预览阶段。 在当前的云计算时代,PaaS领域已经成为各大巨头必争之地。PaaS提供应用服务引擎,用户基于该应用服务引擎可构建该类的应用,典型的案例有Google App Engine、...

    刘永祥 评论0 收藏0
  • 历经6年红包大战后,BAT云计算正走向“春晚时代”

    摘要:总共邀请全球观众参与共同瓜分了亿现金红包大奖。春晚红包战背后暗暗较劲的正是云计算技术。此一役后,安全容灾性能成了每个春节红包团队需要长期考虑的问题。2007年,国内情报史专家高金虎出版过一本《看不见的第二战场》,讲述无线电情报与战争的关系。看不见的第二战场,这段话拿来形容BAT春晚红包战背后的云计算技术战再合适不过了。每年的春晚红包战似乎成了BAT的正面战场,三巨头呼风唤雨,在短时间内把红包...

    singerye 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<