1 Star 1 Fork 0

rinba_murphy / Vue3-shopping-platform

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

技术栈:

create-vue + Vite + Pinia + VueUse + ElementPlus + Vue-Router + SCSS + Axios

安装步骤:

git clone 项目地址       // 把项目下载到本地
cd Vue3-shopping-platform    // 进入项目目录
npm install             // 安装项目依赖,等待安装完成之后,安装失败可用 cnpm 或 yarn
npm run dev             // 运行项目

npm run build           // 执行构建命令,生成的dist文件夹放在服务器下即可访问

项目亮点1:灵活选择使用Pinia进行统一管理状态

情况一:接口中没有路由参数+使用Pinia

《Layout->components->LayoutFixed.vue和LayoutHeader》。首先已经封装好接口函数。接着创建stores->category.js,经过Pinia的 state 的 action对象和state对象处理后,定义获取接口数据的action函数。接着在index.vue中触发(onMounted)Pinia的action对象,获取响应式接口数据。接着在LayoutFixed.vue中导入并使用Pinia暴露的方法,交付action获取的响应式接口数据(特例)。最后使用v-for遍历该数据,渲染组件。

image
image
image
image

情况二:接口中没有路由参数+不使用Pinia

《Home->components->HomeBanner.vue》,在HomeBanner组件中导入封装好的接口函数+响应式处理,接着在onMounted中触发getBanner(),获取响应式接口数据。最后v-for遍历该数据,渲染组件。

image
image
image

情况三:接口中有路由参数(一般不会用Pinia)

《views->Detail->index.vue》首先创建apis->detail.js,在里面封装接口函数(接口中有Query参数id,所以放在params对象里)。接着在views->Detail->index.vue中导入封装好的接口函数+响应式处理,接着在onMounted中触发getGoods(),获取响应式接口数据。最后v-for遍历该数据,渲染页面。

image
image
image

项目亮点2:封装图片懒加载指令

image
验证:在控制台的网络一栏中,将页面清空,当我们将页面下拉到图片进入视口,此时懒加载出四张图片,如下所示:

image

项目亮点3:封装可复用的组件

在项目的很多个业务模块中都需要用到同样的商品展示模块(GoodsItem.vue),没必要重复定义,封装起来,方便复用。

image
展示:为HomeProduct.vue创建一个子组件GoodsItem.vue,将goods对象传给GoodsItem.vue,在子组件中接收goods对象并使用。

image

项目亮点4:封装JS倒计时函数

image
image
image
验证:浏览器如下所示:

image

项目难点:拆开v-model为:modul-value 和 @change

在《购物车->本地购物车-列表购物车-单选功能》中实现 “单选框切换时修改store中对应的状态” 时,使用常规写法只能在singleCheck中获取到selected参数,无法知道在store的cartList修改谁的选中状态,所以除了selected我们还可以补充一个用来筛选的参数——skuId

image
我们可以将绑定事件写成箭头函数的回调写法,在方法后面调用实际的回调,获取 i( i 中有skuId),如下所示:

image
image
验证:点击左侧单选框,控制台输出当前选中对象(含skuId)和选中状态。

image



一级路由:

首页

(未登录)
image

(已登录)
image

登录页

image

二级路由:

Home页

image-20230528203353141

一级分类

image

二级分类

image

详情页

image-20230528204007563

购物车

image-20230528204114405

image-20230528204215872

订单页

image-20230528204356225

image-20230528204422032

image-20230528204439830

支付页

image-20230528204525330

支付结果页

image-20230528204808606

image-20230528204843527

image

个人中心页

image

三级路由:

我的账户

image

历史订单

image

MIT License Copyright (c) 2023 rinba_murphy Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

使用Vue3书写的一个购物平台 展开 收起
其他 等 5 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
其他
1
https://gitee.com/rinba/Vue3-shopping-platform.git
git@gitee.com:rinba/Vue3-shopping-platform.git
rinba
Vue3-shopping-platform
Vue3-shopping-platform
master

搜索帮助