优选商城的项目讲解

项目的分析步骤

1.首先我们创建底部tab的路径,小程序已经给我们提供了设置tab栏的内置组件
2.让后在进行个个页面的渲染(具体的逻辑慢慢来说)
3.首先我们要把prmins进行一个分装,为了后续页面的使用

首页

1.首先我们要进行页面的请求数据
2.然后通过请求过来的数据进行渲染页面
3.我是将首页分为四大模块进行了封装
3.1.头部导航栏
3.2.轮播图
3.3九宫格
3.4楼层
在这里插入图片描述
1.首先是轮播图,导航组件的拆分
2.然后再shou.json中进行引入

<!-- 轮播图 -->
<w-swiper bannere="{{banners}}"></w-swiper>
<!-- 导航组件 -->
<w-headese list='{{list}}'></w-headese>

2.引入

{
  "usingComponents": {
    "w-swiper":"/components/swiper/swiper",
    "w-headese":"/components/headese/headese"
  }
}

3.在创建子组件的时候会生成一个properties一个方法来进行接收数据,页面正常的显示

  properties: {
    bannere:{
      type:Array,
      value:[]
    }
  },
//轮播图
<swiper autoplay='true' interval='2000'>
  <block wx:for="{{bannere}}" wx:key='index'>
    <swiper-item>
      <image src="{{item.image_src}}"></image>
    </swiper-item>
  </block>
  </swiper>
  //九宫格
  <view>
  <block wx:for="{{list}}" wx:key='index'>
    <image src="{{item.image_src}}" class="imgs"></image>
  </block>
</view>

4.请求所有数据的方法

// pages/shou/shou.js
let app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    banners:[],
    list:[],
    louceng:[],
    louceng1:[]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 轮播图请求数据
    app.http.banner().then(res =>{
      // console.log(res)
      let { message } =res.data
      // console.log(message)
      this.data.banners =message
      this.setData({
        banners:message
      })
      // console.log(this.data.banners)
    })

    //导航请求数据
    app.http.headese().then(res =>{
        // console.log(res)
        let {message } =res.data
        this.data.list = message
        // console.log(this.data.list)
        this.setData({
          list:message
        })
    })
    app.http.louceng().then(res =>{
      // console.log(res)
      let { message } =res.data
      // console.log(message)
      // this.data.louceng1 =message.product_list
      // console.log(this.data.louceng1)
      this.setData({
        louceng:message
      })
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})

5.首页的页面的样式

/* pages/shou/shou.wxss */
#input{
  border:1px solid black;
  width: 700rpx;
  height: 50rpx;
  margin-left:25rpx ;
  /* margin-top:10rpx ; */
  border-radius: 5px;
  background:white ;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 30rpx;
}
.head{
  height: 100rpx;
  background: #eb4450;
  display: flex;
  justify-content: center;
  align-items: center;
}
.imgs{
  width: 750rpx;
  height: 40rpx;
  /* max-resolution: top ; ; */
}
.b{
  width: 330rpx;
  height: 300rpx;
}
.c{
  width: 140rpx;
  height: 140rpx;
  margin-left:15rpx ;
}
.d{
  width: 140rpx;
  height: 140rpx;
  margin-left:15rpx ;
}
.e{
  width: 140rpx;
  height: 140rpx;
  /* margin-left:340rpx; */
  position: absolute;
  right: 269rpx;
}
.f{
  width: 140rpx;
  height: 140rpx;
  margin-left:15rpx ;
  position: absolute;
  right: 120rpx;
}
//拆除去的九宫格样式
.imgs{
  width: 189rpx;
  height:200rpx;
}

接下来的操作就是和上面的是一样的,这里就不具体的写了

2.分类的讲解

在这里插入图片描述

 1.其实分类首先我们是要将分类的页面布局先布好,这样可以让我们为了后续的数据渲染更加的简单
 2.页面布局我们是分成两个部分,用来实现点击左边菜单栏,右边进行变化

1.分类的页面布局

<view class="head">
  <view id="input" class="iconfont icon-sousuo">
    搜索
  </view>
</view>
<view class="one">
  <!-- 左侧菜单栏 -->
  <scroll-view class="careleft" scroll-y>
    <block wx:for="{{leftlist}}" wx:key='index'>
      <view class="leftcolor" bindtap="addlist" data-index="{{index}}" class="{{index == indexs ? 'aricve' :''}}">
        {{item.cat_name}}</view>
    </block>
  </scroll-view>

  <!-- 右侧菜单栏 -->

  <scroll-view class="careright" scroll-y wx:if="{{indexs==0}}">
    <block wx:for="{{lefts}}" wx:key='index'>
      <view class="rigths">
        /{{item.cat_name}}/
      </view>
    </block>
  </scroll-view>

  <scroll-view class="careright" scroll-y wx:if="{{indexs!=0}}">
    <block wx:for="{{goods}}" wx:key='index'>
      <view class="rigths">
        /{{item.cat_name}}/
      </view>

      <view  class="a">
        <view class="b" wx:for="{{item.children}}" wx:key='index'>
          <image src="{{item.cat_icon}}" class="imgs" bindtap="goodlist" data-item="{{item}}"></image>
          <text>{{item.cat_name}}</text>
        </view>
      </view>

    </block>
  </scroll-view>

</view>

3.分类页面的css样式

#input{
  border:1px solid black;
  width: 700rpx;
  height: 50rpx;
  margin-left:25rpx ;
  /* margin-top:10rpx ; */
  border-radius: 5px;
  background:white ;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 30rpx;
}
.head{
  height: 100rpx;
  background: #eb4450;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}
.one{
  box-sizing: border-box;
  width: 100vh;
  height: calc(100vh - 100rpx);
  border: 2px solid black ;
  display: flex;
}
.careleft{
  flex: 1;
  border: 1px solid black;
}
.careright{
  flex: 4;
  border: 1px solid black;
}
.leftcolor{
  width: 100%;
  height: 80rpx;
  line-height: 80rpx;
  text-align: center;
  border:1px solid black ;
}
.aricve{
  border: 1px solid res;
  border-right: none;
  border-top:none;
  border-bottom: none;
  color: red;
}
.rigths{
  width: 100%;
  height: 80rpx;
  border: 1rpx solid black ;
  line-height: 80rpx;

}
.imgs{
  width: 100%;
  height: 100rpx;
}
.a{
  width: 100%;
  /* border: 1px solid black; */
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; 
 margin-top:30rpx ;
}
.b{
  width: 200rpx;
  height: 200rpx;
  /* border:1px solid red ; */
  margin-top: 40rpx;
}

3.然后就是进行请求数据

  data: {
    leftlist:[],
    indexs:0,
    goods:[],
    lefts:[]
  },
  //左边菜单栏的数据请求
 onLoad: function (options) {
     app.http.scroll().then(res =>{
       console.log(res)
       let { message } =res.data 
      // console.log(message[0].children);
       this.setData({
        leftlist: message,
        lefts:message[0].children
       })
     
     })
  },

3.如何实现点击左边菜单栏,右边进行数据的渲染
1首先我们要给侧边栏设置一个点击事件,传递一个所有
来进行页面的渲染

 <scroll-view class="careleft" scroll-y>
    <block wx:for="{{leftlist}}" wx:key='index'>
      <view class="leftcolor" bindtap="addlist" data-index="{{index}}" class="{{index == indexs ? 'aricve' :''}}">
        {{item.cat_name}}</view>
    </block>
  </scroll-view>
 addlist(e){
    console.log(e)
    let index = e.currentTarget.dataset.index
    // console.log(index)
    let good = this.data.leftlist[index].children
    // console.log(good)
    this.setData({
      indexs:index,
      goods:good
    })
  },

4.还有就是点击右侧图片进入列表页面
首先我们要个图片设置一个点击事件,传入我们的id,进行一个具体数据的一个渲染

页面结构
  <view  class="a">
        <view class="b" wx:for="{{item.children}}" wx:key='index'>
          <image src="{{item.cat_icon}}" class="imgs" bindtap="goodlist" data-item="{{item}}"></image>
          <text>{{item.cat_name}}</text>
        </view>
      </view>

js代码

  goodlist(e){
    console.log(e)
    let item = e.currentTarget.dataset.item.cat_id
    console.log(item)
      wx.navigateTo({
        url: `/pages/goods_list/goods_list?id=${item}`,
      })
  },
 

这样算是完成了分类的具体操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当前课程中商城项目的实战源码是我发布在 GitHub 上的开源项目 newbee-mall (新蜂商城),目前已有 9900 多个 Star,本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能的讲解,让大家实际操作并实践上手一个大型的线上商城项目,并学习到一定的开发经验以及其中的开发技巧。商城项目所涉及的功能结构图整理如下: 作者寄语本课程录制于2019年,距今已有一段时间。期间,Spring Boot技术栈也有一些版本升级,比如Spring Boot 2.7.x发版、Spring Boot 3.x版本正式版本。对于这些情况,笔者会在本课程实战项目的开源仓库中创建不同的代码分支,保持实战项目的源码更新,保证读者朋友们不会学习过气的知识点。新蜂商城的优化和迭代工作不会停止,不仅仅是功能的优化,在技术栈上也会不断的增加,截止2023年,新蜂商城已经发布了 7 个重要的版本,版本记录及开发计划如下图所示。 课程特色 对新手开发者十分友好,无需复杂的操作步骤,仅需 2 秒就可以启动这个完整的商城项目最终的实战项目是一个企业级别的 Spring Boot 大型项目,对于各个阶段的 Java 开发者都是极佳的选择实践项目页面美观且实用,交互效果完美教程详细开发教程详细完整、文档资源齐全代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,可以进一步提升你的市场竞争力 课程预览 以下为商城项目的页面和功能展示,分别为:商城首页 1商城首页 2购物车订单结算订单列表支付页面后台管理系统登录页商品管理商品编辑

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值