商品详情(一)-实现列表页跳转 & 获取商品详情数据

商品详情

获取商品ID

  • 通过小程序生命周期函数获取路径参数
onLoad (param) {
  // 获取路径中的参数
  this.goodsId = param.goods_id
}
实例

列表页-跳转:url="'/pages/goods_detail/main?gid=' + item.goods_id"

  <!-- 商品列表 -->
    <div class="goods-list">
      <navigator :url="'/pages/goods_detail/main?gid=' + item.goods_id" class='goods-item' :key='item.goods_id' v-for='item in list'>
        <img :src="item.goods_small_logo" mode="aspectFill"/>
        <div class="goods-right">
          <h4>
            {{item.goods_name}}
          </h4>
          <div class="price">
            <span></span>{{item.goods_price}}
          </div>
        </div>
      </navigator>
    </div>

第一步:在src/pages下,新建goods_detail商品详情页文件夹

在里面新建main.js文件

import Vue from 'vue'
import App from './index'

const app = new Vue(App)
app.$mount()

第二步:新建index.vue页面模板

<template>
	<div>详情</div>
</template>
<script>
export default{
    data(){
        return{}
    }
}
</script>

第三步:在src/app.json中,添加页面路径

  "pages": [
    "pages/home/main",
    "pages/cate/main",  
    "pages/cart/main",  
    "pages/my/main",
    "pages/search/main",
    "pages/search_list/main",
    "pages/goods_detail/main"
  ],

第四步:新建文件后,npm run dev重启项目

点击列表title,实现跳转

在这里插入图片描述

获取商品id

<template>
	<div>{{gid}}</div>
</template>
<script>
export default{
    data(){
        return{
            gid:'',
        }
    },
    onLoad (param) {
        this.gid = param.gid
        this.loadData()
  }
}
</script>

图例:

在这里插入图片描述

加载商品详情数据

  • 调用接口获取商品详情数据
    • 路径:goods/detail
async loadData () {
  // 根据商品的id查询详细信息
  let res = await request('goods/detail',  {
    goods_id: this.goodsId
  })
  this.info = res
}
实例:
import request from '../../utils/request.js'
export default {
  data () {
    return {
      gid: '',
        //商品详情数据
      info: {}
    }
  },
  methods: {
     async loadData () {
      // 获取商品详情数据
      let res = await request('goods/detail', {
        goods_id: this.gid
      })
      //console.log(res)
      this.info = res
    }
  },
  onLoad (param) {
    this.gid = param.gid
      //调用商品详情数据
    this.loadData()
  }
}

打印商品详情数据res

在这里插入图片描述

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要先创建一个商品列表面和一个商品详情面。 在商品列表面上,需要绑定一个点击事件,当用户点击某个商品时,跳转到该商品详情面。 下面是示例代码: 商品列表面: ```html <view class="goods-list"> <view class="goods-item" bindtap="goToDetail" data-goods-id="1"> <image src="https://example.com/goods1.jpg" mode="aspectFill"></image> <view class="goods-name">商品1</view> <view class="goods-price">¥10.00</view> </view> <view class="goods-item" bindtap="goToDetail" data-goods-id="2"> <image src="https://example.com/goods2.jpg" mode="aspectFill"></image> <view class="goods-name">商品2</view> <view class="goods-price">¥20.00</view> </view> <view class="goods-item" bindtap="goToDetail" data-goods-id="3"> <image src="https://example.com/goods3.jpg" mode="aspectFill"></image> <view class="goods-name">商品3</view> <view class="goods-price">¥30.00</view> </view> </view> ``` 在上面的代码中,我们使用了一个 `goods-item` 的 class 来表示每个商品,使用 `bindtap` 来绑定点击事件,并且使用了 `data-goods-id` 来存储商品的 ID。 接下来,在面的 JS 文件中,需要编写 `goToDetail` 函数,实现跳转商品详情面的逻辑。 商品列表面 JS 代码: ```javascript Page({ // 点击商品跳转商品详情面 goToDetail: function(event) { var goodsId = event.currentTarget.dataset.goodsId; wx.navigateTo({ url: '/pages/goods/detail?id=' + goodsId }); } }) ``` 在上面的代码中,我们使用了 `event.currentTarget.dataset.goodsId` 来获取点击的商品的 ID,然后使用 `wx.navigateTo` 函数跳转商品详情面。 接下来,需要编写商品详情面的代码。 商品详情面: ```html <view class="goods-detail"> <image src="https://example.com/goods1.jpg" mode="aspectFill"></image> <view class="goods-name">商品1</view> <view class="goods-price">¥10.00</view> <view class="goods-desc">这是商品1的描述</view> </view> ``` 在上面的代码中,我们展示了商品的图片、名称、价格和描述。 最后,需要在商品详情面的 JS 文件中,获取跳转过来的商品 ID,并且根据该 ID 加载对应的商品数据商品详情面 JS 代码: ```javascript Page({ onLoad: function(options) { // 获取跳转过来的商品 ID var goodsId = options.id; // 根据商品 ID 加载商品数据 // ... } }) ``` 在 `onLoad` 函数中,我们可以通过 `options.id` 获取跳转过来的商品 ID,然后根据该 ID 加载对应的商品数据。 以上就是使用微信开发者工具编写一个点击商品列表跳转商品详情面的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值