当前位置: 首页 > news >正文

Vue.js教学第二十二章:vue实战项目商城项目

Vue 商城项目代码

  • 创建 Vue 项目 :使用 Vue CLI 创建项目,命令如下:

    • npm install -g @vue/cli :全局安装 Vue CLI。

    • vue create vue-mall :创建名为 vue-mall 的项目。

    • 进入项目目录并启动项目:cd vue-mallnpm run serve

  • 安装依赖 :安装 Vue Router 用于路由管理,npm install vue-router

  • 创建路由器文件 :在 src 目录下创建 router.js,配置路由规则:

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from './views/Home.vue'
import ProductList from './views/ProductList.vue'
import ProductDetail from './views/ProductDetail.vue'
import Cart from './views/Cart.vue'
import Order from './views/Order.vue'Vue.use(VueRouter)const routes = [{ path: '/', redirect: '/home' },{ path: '/home', component: Home },{ path: '/products', component: ProductList },{ path: '/product/:id', component: ProductDetail },{ path: '/cart', component: Cart },{ path: '/order', component: Order }
]const router = new VueRouter({routes
})export default router
  • 创建 Vuex 存储 :在 src 目录下创建 store.js,用于管理应用状态:

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({state: {products: [],cart: []},mutations: {setProducts(state, products) {state.products = products},addToCart(state, product) {state.cart.push(product)},removeFromCart(state, productId) {state.cart = state.cart.filter(item => item.id !== productId)}},actions: {fetchProducts({ commit }) {// 模拟从后端获取商品数据setTimeout(() => {const products = [{ id: 1, name: '商品1', price: 100, description: '这是商品1' },{ id: 2, name: '商品2', price: 200, description: '这是商品2' },{ id: 3, name: '商品3', price: 300, description: '这是商品3' }]commit('setProducts', products)}, 1000)}},getters: {cartCount: state => state.cart.length,cartTotalPrice: state => state.cart.reduce((total, item) => total + item.price, 0)}
})
  • 创建 Axios 实例 :在 src 目录下创建 api.js,用于发送 HTTP 请求:

import axios from 'axios'const api = axios.create({baseURL: 'https://api.example.com' // 替换为实际的 API 基础地址
})export default api
  • 创建首页组件 :在 src/views 目录下创建 Home.vue,展示商城首页内容:

<template><div class="home"><h1>欢
http://www.xdnf.cn/news/967051.html

相关文章:

  • el-upload组件,上传文件失败,:on-error方法失效
  • 人工智能与大数据融合发展:新一代智能系统的演进路径
  • 计算机行业光辉开始暗淡
  • Unity3D中Gfx.WaitForPresent优化方案
  • 性能监控的核心要点
  • RestClient
  • AI书签管理工具开发全记录(二十):打包(完结篇)
  • 零基础学前端-传统前端开发(第一期-开发软件介绍与本系列目标)(VScode安装教程)
  • 群晖Nas - Docker(ContainerManager)上安装GitLab
  • Linux内核 -- INIT_WORK 使用与注意事项
  • Windows 文件路径与文件名限制
  • 如何根据excel表生成sql的insert脚本
  • ABP vNext + Hive 集成:多租户大数据 SQL 查询与报表分析
  • 【iOS】cell的复用以及自定义cell
  • 使用NNI剪枝工具对VGG16网络进行剪枝,同时使用知识蒸馏对剪枝后结果进行优化。(以猫狗二分类为例)
  • 认证与授权的区别与联系
  • 看板任务描述不清如何解决
  • 数据库学习笔记(十五)--变量与定义条件与处理程序
  • 云蝠智能大模型语音智能体:构建心理咨询领域的智能助手
  • leetcode1034. 边界着色-medium
  • 使用mpu6500, PID,互补滤波实现一个简单的飞行自稳控制系统
  • 南昌市新建区委书记陈奕蒙会见深兰科技集团董事长陈海波一行
  • 如何使用 DeepSeek 帮助自己的工作
  • 机械制造系统中 PROFINET 与 PROFIBUS-DP 的融合应用及捷米科技解决方案
  • Matlab点云合并函数pcmerge全解析
  • 线程与协程
  • Prometheus + Grafana 监控 RabbitMQ 实践指南
  • Spring Boot 分层架构与数据流转详解
  • Word中如何对文献应用的格式数字连起来,如:【1-3】
  • 如何看容器的ip地址