尚品汇项目跟练--跳转到新路由【产品详情页】的事项

尚品汇项目跟练--跳转到新路由【产品详情页】的事项

点击跳转到一个新的路由【产品详情页】

搞定静态页面

产品详情页的组件还没有注册为路由的组件,需要在点击产品图片的时候,跳转到产品详情页,同时带上产品的id,另外需要考虑跳转到详情页后滚动条的的位置回到顶部。

//引入路由
import Detail from "@/views/Detail";
//配置路由
export default [
{
    path: "/Detail/:skuid?",//这个?表示这个参数可以传递也可以不传递
    component: Detail,
    meta: {
      show: true
    }
  }
]

发请求

api

//获取产品详情信息的接口  URL:/api/item/{skuid}  请求方式:get
export const reqGoodsInfo = skuId =>
  requests({ url: `/item/${skuId}`, method: "get" });

vuex

获取产品详情信息,vuex中需要新增一个新的模块Detail,同时需要回到大仓库中进行合并。

//在store文件夹中建立新的文件Detail.js,内容如下
import { reqGoodsInfo } from "@/api";

const state = {
  goodInfo: {}
};
const mutations = {
  GETGOODINFO(state, goodInfo) {
    state.goodInfo = goodInfo;
  }
};
const actions = {
  //获取产品信息的action
  async getGoodInfo({ commit }, skuId) {
    let result = await reqGoodsInfo(skuId);
    if (result.code == 200) {
      commit("GETGOODINFO", result.data);
    }
  }
};
const getters = {};

export default {
  state,
  mutations,
  actions,
  getters
};
//这里的vuex四件套要记熟,state,mutations,actions,getters
//在大仓库中合并的内容如下

//引入小仓库
import Detail from "./Detail";

//对外暴露store类的一个实例
export default new Vuex.Store({
  //实现vuex仓库模块式开发存储数据
  modules: {
    Detail
  }
});

动态展示组件

在合适的位置发请求。

this.$store.dispatch("getGoodInfo", this.$route.params.skuid);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值