vue 实现列表跳转至详情且能添加至购物车功能

yizhihongxing

下面是“vue 实现列表跳转至详情且能添加至购物车功能”的攻略。该攻略的主要步骤如下:

  1. 构建商品列表页
  2. 构建商品详情页
  3. 实现跳转及传参功能
  4. 实现购物车功能

下面将详细介绍这些步骤。

构建商品列表页

首先需要构建一个商品列表页面,用于展示商品列表及其相关信息。可以使用v-for指令循环遍历商品数组,并通过router-link标签实现跳转到商品详情页。示例代码如下:

<template>
  <div>
    <h2>商品列表</h2>
    <ul>
      <li v-for="product in products" :key="product.id">
        <router-link :to="'/products/' + product.id">{{product.name}}</router-link>
        <p>{{product.price}}</p>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      products: [
        { id: 1, name: '商品1', price: 100 },
        { id: 2, name: '商品2', price: 200 },
        { id: 3, name: '商品3', price: 300 },
        { id: 4, name: '商品4', price: 400 },
        { id: 5, name: '商品5', price: 500 }
      ]
    }
  }
}
</script>

构建商品详情页

接下来需要构建一个商品详情页面,用于展示单个商品的详细信息。可以通过$route.params获取路由中的参数,并通过computed属性筛选与参数相对应的商品。示例代码如下:

<template>
  <div>
    <h2>{{product.name}}</h2>
    <p>{{product.desc}}</p>
    <p>{{product.price}}</p>
    <button @click="addToCart(product)">加入购物车</button>
  </div>
</template>

<script>
export default {
  computed: {
    product() {
      return this.products.find(product => product.id === parseInt(this.$route.params.id))
    }
  },
  data() {
    return {
      products: [
        { id: 1, name: '商品1', price: 100, desc: '这是商品1的描述' },
        { id: 2, name: '商品2', price: 200, desc: '这是商品2的描述' },
        { id: 3, name: '商品3', price: 300, desc: '这是商品3的描述' },
        { id: 4, name: '商品4', price: 400, desc: '这是商品4的描述' },
        { id: 5, name: '商品5', price: 500, desc: '这是商品5的描述' }
      ]
    }
  },
  methods: {
    addToCart(product) {
      this.$store.dispatch('addProductToCart', product)
    }
  }
}
</script>

实现跳转及传参功能

现在需要将商品列表页和商品详情页链接起来,并且传递商品的id参数。可以使用<router-link>实现跳转,并在to属性中指定路由路径和需要传递的参数。示例代码如下:

<router-link :to="{ name: 'ProductDetails', params: { id: product.id }}">查看详情</router-link>

同时还需要在路由定义中指定参数,示例代码如下:

{
  path: '/products/:id',
  name: 'ProductDetails',
  component: ProductDetails
}

实现购物车功能

最后需要实现购物车功能,可以使用Vuex来实现。首先需要创建一个store对象,并且定义一个状态cartProducts,用于存储购物车中的商品。示例代码如下:

const store = new Vuex.Store({
  state: {
    cartProducts: []
  },
  mutations: {
    addProductToCart(state, product) {
      const record = state.cartProducts.find(p => p.id === product.id)
      if (!record) {
        state.cartProducts.push({
          id: product.id,
          quantity: 1
        })
      } else {
        record.quantity++
      }
    }
  },
  actions: {
    addProductToCart({ commit }, product) {
      commit('addProductToCart', product)
    }
  },
  getters: {
    cartProducts: state => {
      return state.cartProducts.map(item => {
        const product = state.products.find(p => p.id === item.id)
        return {
          id: product.id,
          name: product.name,
          price: product.price,
          quantity: item.quantity
        }
      })
    }
  }
})

在商品详情页面中,可以在单击“加入购物车”按钮时调用addToCart方法,并将商品对象作为参数传递给addProductToCart操作。该操作将在store的cartProducts数组中添加或更新商品对象。还可以在getter中获取cartProductsproducts数组,并创建一个新数组,用于存储购物车中商品的详细信息。

至此,我们已经完成了“vue 实现列表跳转至详情且能添加至购物车功能”的完整攻略。通过上述步骤,我们可以构建出一个完整的电商网站,并实现商品的查看、详情查看和添加购物车等功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue 实现列表跳转至详情且能添加至购物车功能 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 使用 Vue cli 3.0 构建自定义组件库的方法

    使用 Vue cli 3.0 构建自定义组件库的方法可以通过以下步骤实现: 1. 创建一个新的 Vue 项目 使用 Vue cli 3.0 创建一个新项目: vue create my-library 2. 配置组件库 在 “src” 目录下创建一个 “components” 目录,所有组件都将存放在这个目录中。为了确保组件可以在其他项目中使用,我们需要将这…

    Vue 2023年5月28日
    00
  • Vuex详细介绍和使用方法

    Vuex是Vue.js框架中的一个状态管理工具,用于在Vue组件之间进行状态共享。它采用了单一数据源的概念,在全局维护了一个store对象,实现了统一状态的管理和维护。 Vuex的基础概念 State 在Vuex中,状态是唯一的数据源,在前端开发中,我们经常需要在不同的组件中使用相同的状态,为了保证状态的一致性和可控性,我们将其放置在store对象中,即状态…

    Vue 2023年5月27日
    00
  • 基于Vant UI框架实现时间段选择器

    下面我来详细讲解如何基于Vant UI框架实现时间段选择器的攻略。 1. 确定需求和使用Vant UI框架 首先需要确定需求,即实现一个时间段的选择器,并且选择器需要基于Vant UI框架实现。Vant UI 是一个轻量、可靠的移动端 Vue 组件库。我们可以使用npm来安装Vant UI,命令如下: npm i vant -S 2. 导入Vant UI组件…

    Vue 2023年5月29日
    00
  • 教你使用vue3写Json-Preview的示例代码

    下面是关于“教你使用vue3写Json-Preview的示例代码”的完整攻略,包括两条示例说明。 什么是Json-Preview Json-Preview是一种用于显示json数据的工具,常用于数据展示和调试中,可以将复杂的json数据以树形结构的形式展现出来。 使用vue3编写Json-Preview的步骤 1.创建一个vue3项目 使用Vue CLI创建…

    Vue 2023年5月28日
    00
  • vue项目中引入vue-datepicker插件的详解

    引入 vue-datepicker 插件,主要需要以下几个步骤: 1. 安装 vue-datepicker 插件 使用 npm 或 yarn 安装该插件: npm install vue-datepicker –save # 或 yarn add vue-datepicker 2. 在 main.js 中注册插件 在 main.js 文件中添加如下代码: …

    Vue 2023年5月29日
    00
  • vue3组件化开发之可复用性的应用实例详解

    下面详细讲解“vue3组件化开发之可复用性的应用实例详解”这个完整攻略。 一、背景和前置知识 首先需要了解的是Vue3的组件化开发,并且对Vue3语法要有一定的掌握。 二、组件复用性的重要性 在实际开发中,组件的复用性非常重要,可以大大提升开发效率。在Vue3中,组件是可以被复用的,通过将公共逻辑和UI组件编写成可复用的组件,可以节省时间和代码量。 三、如何…

    Vue 2023年5月27日
    00
  • vue项目查看vue版本及cli版本的实现方式

    要查看Vue版本以及CLI版本,需要在控制台中使用命令来完成。下面是具体的步骤和示例: 步骤1:查看Vue版本 在控制台中运行以下命令: vue –version 在命令行中,你应该看到Vue的版本号。例如: Vue CLI 4.2.3 这意味着你正在使用Vue CLI4的最新版本。 步骤2:查看CLI版本 在控制台中运行以下命令: vue info 这将…

    Vue 2023年5月28日
    00
  • Vue3全局组件通信之provide / inject详解

    当我们开发Vue3应用时,有时候会需要在多个组件之间进行数据传递,这时候就需要用到全局组件通信。Vue3中提供了两种方式进行全局组件通信,一种是provide / inject,另一种是Vuex状态管理,本文主要介绍前者。 一、provide / inject说明 provide / inject是Vue3中提供的API,用于在父组件中提供数据,然后在子组件…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部