微信小程序优购商城项目

本文详述了微信小程序优购商城的开发过程,包括配置页面、封装组件和wx.request,以及各功能模块的实现,如首页、分类、商品详情、购物车、支付和我的页面。特别强调了axios的封装和使用,以及页面数据的请求和渲染。
摘要由CSDN通过智能技术生成

这篇文章主要就是把我写的优购商城进行简单的说明,希望可以对大家有所帮助
1.先配置页面
在app.json中设置所需要的页面路径
在这里插入图片描述

2.然后再封装我们需要的组件和wx.request
wx.request可以不封装,但是封装可以减少重复代码,写起来也比较方便
axios就是我封装的http文件,名字叫什么都可以
在这里插入图片描述
2-1 api.js代码
代码是导出需要的接口路径,

module.exports={
   
  "swiber":"/home/swiperdata",
}

2-2 request.js代码
封装wx.reuqest方法并导出

//url>>>路径  data>>>接口需要的参数   method>>>接口使用的方法 get 或者 post
  module.exports = (url, data, method) => {
   
    return new Promise((resolve,reject) => {
   
      wx.request({
   
        url: url,
        data: data,
        method: method,
        success(res) {
   
        //成功回调 返回参数
            resolve(res)
        },
        fail(err){
   
        //失败回调
          reject(err)
        }
      })
    })
  }

2-3axios.js文件
封装好之后下使用需要在全局注册,

//将封装好的api和request导入使用
var api = require('../http/api')
var req = require('../http/request')
//接口路径前缀
let baseUrl = "https://api-hmugo-web.itheima.net/api/public/v1"
//请求轮播图数据
function swiper() {
   
  return req(baseUrl + api.swiber, {
   }, "get")
}
//将方法导出
module.exports = {
   
  swiper,
}

2-4全局注册并在组件使用
在根目录下app.js引入axios

// app.js
//引入axios
let axios = require('./http/axios')
App({
   
  onLaunch() {
   
    // 展示本地存储能力
    const logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)
  },
  globalData: {
   
    userInfo: null
  },
  //注册成全局的方法
  axios,
}
)

2-5最后在页面使用

// pages/index/index.js
//保存app实例
var app = getApp()
Page({
   

  /**
   * 页面的初始数据
   */
  data: {
   
    banner: [],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
   
  //使用封装的axios接口进行请求数据
    app.axios.swiper().then(res => {
   
      let banner = res.data.message,
      //请求成功将数据保存给data以便在页面使用
      this.setData({
    banner })
    })
    })
  },
})

到这里我们的axios就介绍完了,没什么难处,可能头几次有点不知道过程,多谢几次级OK了!

接下来说一下我们项目开发的过程,一些相对容易写的我就说的简单一点,重点说清楚!
2首页的数据
首页功能感觉是最简单的,请求数据然后渲染出来就ok了,接口都不需要传参数, 还有上边的搜索,忘记标出来了,他就是个按钮,点击后跳转到另一个搜索页面进行搜索,根据input输入框里边输入的关键字进行搜索,将关键字传入到接口就会返回相关的数据,最下边有搜索的代码*
在这里插入图片描述
在这里插入图片描述

// pages/search/search.js
var app = getApp()
Page({
   

  /**
   * 页面的初始数据
   */
  data: {
   
  //input输入框的值
    uu: ""
  },
  //手写的双向数据绑定
  sss(e) {
   
    this.setData({
   
      uu: e.detail.value
    })
    //e.detail.value是input的关键字,将数据传到接口中返回的就是根据关键字所返回的数据,然后渲染到页面就ok
    app.axios.search(e.detail.value).then(res => {
   
      this.setData({
   
        list:res.data.message
      })
    })
  },
  deta(e){
   
    wx.navigateTo({
   
      url: '/pages/goods_detail/goods_detail?goods_id='+e.currentTarget.dataset.id,
    })
  },
})

3.分类页面的实现
写完首页来实现我们的分类页面
分别是左右两个组件
使用的是小程序自带的标签加上scroll-y="true"属性就可以实现上下滚动,下边上代码
在这里插入图片描述

// pages/category/category.js
//使用app实例
var app = getApp()
Page({
   

  /**
   * 页面的初始数据
   */
  data: {
   
    scrol_list: [],
    scol_right: [],
    erjilist: [],
    index: 0,
    id: -1,
    shoplist: [],
  },
	//保存左侧竖向导航的下标等下用来写tab切换的样式
  emic(e) {
   
    this.setData({
   
      index: e.currentTarget.dataset.index,
    })
    //右侧分类渲染的首层数据
    this.setData({
   
      scol_right: this.data.scrol_list[this.data.index].children
    })
  },
  //跳转到商品列表然后将id传到商品列表页面
  gotoid(e) {
   
      wx.navigateTo({
   
        url: `/pages/goods_list/goods_list?cid=  ${
     e.currentTarget.dataset.id}}`
      })
    // })
  }
  ,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
   
  //页面首次加载获取到数据保存
    app.axios.scrol_list().then(res => {
   
      this.setData({
   
        scrol_list: res.data.message
      })
      // console.log(this.data.scrol_list);
      this.setData({
   
        scol_right: res.data.message[this.data.index].children,
      })
    })
  },
})

这里数据获取没什么难的,我写的时候遇到的问题在wxml!!
他的右侧数据渲染有点绕,渲染的时候有点让我挠头
看代码

<sear></sear>
<view class="boxss">
  <scroll-view style="width:20%;height:100%" scroll-y="true">
    <!--components/scrol_list/scrol_list.wxml-->
    <view style="display:flex">
      <view style="width:220rpx">
        <block wx:for="{
    {scrol_list}}" wx:key="index" wx:for-index="ins">
          <view class="{
    {index==ins ? 'bgs' : ''}}" style="width:100%;height:82rpx;text-align:center;line-height:82rpx"
            data-index="{
    {ins}}" bindtap="emic">
            {
  {item.cat_name}}
          </view>
        </block>
      </view>
    </view>
  </scroll-view>
  //这里是右侧数据
  <scroll-view style="width:80%" scroll-y="true">
    <!--components/scrol_view/scrol_view.wxml-->
    
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-app是一种基于Vue.js的跨平台开发框架,可以用于开发微信小程序、H5、App等多个平台的应用。《优购商城项目》是一个基于uni-app开发的微信小程序商城项目。 要实现《优购商城项目》,首先需要配置uni-app的开发环境。可以使用HBuilderX作为开发工具,它提供了丰富的功能和插件来辅助开发。然后需要获取微信小程序的APPID,这是小程序的身份证明,是唯一的。可以在微信开放平台上注册一个小程序并获取到APPID。 接下来,可以在HBuilderX中创建一个新的uni-app项目。在菜单栏中选择文件 -> 项目 -> 新建选择uni-app,填写项目名称并指定项目创建的目录。然后选择微信小程序作为目标平台,并填写小程序的APPID。这样就可以开始在uni-app上开发《优购商城项目》了。 在开发过程中,可以使用uni-app提供的丰富组件和API来实现商城功能,比如商品展示、购物车、订单管理等。可以使用uni-app提供的跨平台能力,一次开发即可在多个平台上运行。在开发完成后,可以将项目打包成微信小程序并在微信开发者工具中进行调试和发布。 通过以上步骤,就可以利用uni-app开发微信小程序实现《优购商城项目》了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [微信小程序--优购商城项目(1)](https://blog.csdn.net/ljn1046016768/article/details/124043924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [uniapp微信小程序实现《优购商城项目》](https://blog.csdn.net/qq_64102392/article/details/131212823)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值