位置: IT常识 - 正文

用vue3+vant4开发的简单小众电商购物项目模板(纯前端)(vant移动端开发)

编辑:rootadmin
用vue3+vant4开发的简单小众电商购物项目模板(纯前端) 简单录制如下

推荐整理分享用vue3+vant4开发的简单小众电商购物项目模板(纯前端)(vant移动端开发),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vant 开发app,vue中引入vant组件,vant移动端开发,vue3 vant,vue中引入vant组件,vue-vant,vue中引入vant组件,vue-vant,内容如对您有帮助,希望把文章链接给更多的朋友!

主要练习下界面和交互,顺带简单了解下 vue3 语法。

简单截图如下

首页

首页-猜你喜欢

用vue3+vant4开发的简单小众电商购物项目模板(纯前端)(vant移动端开发)

分类

购物车

个人页面

部分文件代码

底部导航文件

<template> <div class="nav" id="myNav"> <div class="nav-item-box" v-for="(item,index) in itemArr" :key="index" > <!-- :class="item.title == '书架' ? 'bookshelf_nav' : ''" --> <div class="nav-item" :style="name == item.navName ? 'color:rgb(255,63,63)' : ''" @click="to(item.navName)" > <div class="icon"> <i :class="item.icon"></i> </div> <div class="title">{{item.title}}</div> </div> </div> </div></template><script>/* eslint-disable */import { defineComponent, ref, computed } from 'vue'import { useRouter,useRoute } from 'vue-router'export default defineComponent({ setup() { let itemArr = ref([ { title: '首页', navName: 'Index', icon: 'iconfont icon-shouye' }, { title: '分类', navName: 'Classification', icon: 'iconfont icon-fenlei'}, { title: '购物车', navName: 'ShoppingCart', icon: 'iconfont icon-gouwuche' }, { title: '我的', navName: 'Mine', icon: 'iconfont icon-wode' }, ]) let router = useRouter() // 全局路由对象 let route = useRoute() // 当前路由对象 let name = computed(() =>{ return route.name }) let to = (val) =>{ if (val != name.value){ router.replace({ name: val }) } } return { itemArr, name, to } }})</script>

分类功能模块

<div class="content_container"> <!-- 左侧 --> <div class="left_box"> <div v-for="(item,index) in leftList" :key="index"> <div :class="curNav.index == item.index ? 'active' : '' " class="left_box_title" @click="changeIndex(index)">{{item.title}}</div> </div> </div> <!-- 右侧 --> <div> <van-list v-if="curNav.index ==0" class="right_box" v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad" > <div v-for="item in list" :key="item" class="right_good"> <div class="img "><img class="img" :src="item.src" alt=""></div> <div class="name">{{item.title}}</div> </div> </van-list> <div v-if="curNav.index !=0"> <van-empty image="error" description="暂无数据" /> </div> </div></div><script>/* eslint-disable */import { defineComponent, ref } from 'vue'import { showToast } from 'vant';import navCom from '@/components/onlineRetailer/MyNav.vue'export default defineComponent({ name: 'headerCom', components: { navCom }, setup (props,ctx) { let value = ref('') let active = ref(0); // let onChange = (index) => showToast(`标签名 ${index + 1}`); // let onChange = (index) => { // switch(index){ // case 0: showToast('1111111111111') // break; // case 1: showToast('222222222222') // break; // default: showToast('6666666666666') // } // } let leftList = ref([ { index: 0, title: "好货推荐" }, { index: 1, title: "彩妆个护" }, { index: 2, title: "食品饮料" }, { index: 3, title: "鞋履箱包" }, { index: 4, title: "母婴用品" }, { index: 5, title: "生活家居" } ]) let rightList = ref([ { title: '麦菜' }, { title: '芥兰' } ]) let list = ref([ { title: '坚定不移', src: require('@/assets/newProducts/2.jpg')}, { title: '壮志凌云', src: require('@/assets/newProducts/1.jpg')}, { title: '奋发图强', src: require('@/assets/newProducts/3.jpg')}, { title: '坚持不懈', src: require('@/assets/newProducts/4.jpg')}, { title: '朝气蓬勃', src: require('@/assets/newProducts/5.jpg')}, { title: '力争上游', src: require('@/assets/newProducts/6.jpg')}, { title: '坚定不移', src: require('@/assets/newProducts/2.jpg')}, { title: '壮志凌云', src: require('@/assets/newProducts/1.jpg')}, ]); let loading = ref(false); let finished = ref(false); let curNav = ref({ index: 0, }) let changeIndex = (index) =>{ curNav.value.index = index } let onLoad = () => { // 异步更新数据 // setTimeout 仅做示例,真实场景中一般为 ajax 请求 // setTimeout(() => { // for (let i = 0; i < 6; i++) { // list.value.push(list.value.length + 1); // } // 加载状态结束 loading.value = false; console.log('list.value.length',list.value.length) // 数据全部加载完成 if (list.value.length >= 20) { finished.value = true; } // }, 1000); }; return { value, active, // onChange, leftList, rightList, list, onLoad, loading, finished, curNav, changeIndex } }})</script>

简单记录,(完)😀

本文链接地址:https://www.jiuchutong.com/zhishi/283197.html 转载请保留说明!

上一篇:windows不能打开帮助和支持怎么办(windows不能打开exe文件)

下一篇:Win11 Build 22483预览版ISO官方镜像下载(win11 build 22000.65)

  • 移动宽带怎么更换户主(移动宽带怎么更改密码手机上怎么改)

    移动宽带怎么更换户主(移动宽带怎么更改密码手机上怎么改)

  • 腾讯视频怎样退出后继续缓存(腾讯视频怎样退出微信登录)

    腾讯视频怎样退出后继续缓存(腾讯视频怎样退出微信登录)

  • 手机飞行模式闹钟还会响吗(手机飞行模式闹钟不响)

    手机飞行模式闹钟还会响吗(手机飞行模式闹钟不响)

  • 手机下面三个键叫什么(手机下面三个键怎么调出来vⅰvo)

    手机下面三个键叫什么(手机下面三个键怎么调出来vⅰvo)

  • 云平台有什么(云平台是什么)

    云平台有什么(云平台是什么)

  • mt6755相当于骁龙哪一款处理器(mt6757相当于骁龙)

    mt6755相当于骁龙哪一款处理器(mt6757相当于骁龙)

  • 抖音上的作品怎么突然为0(抖音上的作品怎么发微信朋友圈)

    抖音上的作品怎么突然为0(抖音上的作品怎么发微信朋友圈)

  • 微信删的好友能看我的朋友圈吗(微信删的好友能找回来么没有手机号)

    微信删的好友能看我的朋友圈吗(微信删的好友能找回来么没有手机号)

  • 微信免流量怎么开通(如何微信免流量)

    微信免流量怎么开通(如何微信免流量)

  • airpods一代二代外观区别(airpods一代二代怎么区别)

    airpods一代二代外观区别(airpods一代二代怎么区别)

  • 微信群里可以发多长的视频(微信群里可以发多少钱的红包)

    微信群里可以发多长的视频(微信群里可以发多少钱的红包)

  • 为什么手机号收不到验证码(为什么手机号收不到快递信息)

    为什么手机号收不到验证码(为什么手机号收不到快递信息)

  • 苹果11没发票能保修吗(苹果没发票能全国联保吗)

    苹果11没发票能保修吗(苹果没发票能全国联保吗)

  • 地球上有多少个国家(地球上有多少个岛屿)

    地球上有多少个国家(地球上有多少个岛屿)

  • 淘宝导航栏怎么自定义(淘宝导航栏怎么换颜色)

    淘宝导航栏怎么自定义(淘宝导航栏怎么换颜色)

  • 小米手机怎么强制开机(小米手机怎么强制恢复出厂设置)

    小米手机怎么强制开机(小米手机怎么强制恢复出厂设置)

  • oppor17相机时间水印(oppo r17拍照怎么显示时间)

    oppor17相机时间水印(oppo r17拍照怎么显示时间)

  • qq大会员激活(qq会员激活码在哪里激活)

    qq大会员激活(qq会员激活码在哪里激活)

  • ipad a1432是什么型号(ipada1432是什么处理器)

    ipad a1432是什么型号(ipada1432是什么处理器)

  • 抖音里怎么收藏音乐(抖音里怎么收藏别人的视频)

    抖音里怎么收藏音乐(抖音里怎么收藏别人的视频)

  • 苹果电脑使用U盘装系统时如何用快捷键进入U盘启动(苹果电脑使用u盘之前需要设置什么?)

    苹果电脑使用U盘装系统时如何用快捷键进入U盘启动(苹果电脑使用u盘之前需要设置什么?)

  • 网络端口被占用(网络端口被占用怎么解决)

    网络端口被占用(网络端口被占用怎么解决)

  • initsdk.exe是什么进程 作用是什么 initsdk进程的查询(initpki.dll有什么用)

    initsdk.exe是什么进程 作用是什么 initsdk进程的查询(initpki.dll有什么用)

  • 【React Router 6 快速上手二】useParams / useSearchParams / useLocation / 编程式路由导航useNavigate等API(react router教程)

    【React Router 6 快速上手二】useParams / useSearchParams / useLocation / 编程式路由导航useNavigate等API(react router教程)

  • sndconfig命令  设置声卡(sscom命令)

    sndconfig命令 设置声卡(sscom命令)

  • python输入成绩求平均分(python输入三科成绩)

    python输入成绩求平均分(python输入三科成绩)

  • 进项税额转出怎么操作
  • 国际避税地是什么
  • 固定资产可以一次性摊销吗
  • 购入生产线属于什么费用
  • 跨月红冲发票如何申报退税
  • 减资账务处理基准日 会计视野
  • 合同和发票计量一样吗
  • 企业的两金是哪两金
  • 属于会计核算方法的
  • 房地产企业预售阶段企业所得税
  • 土地增值税预征管理办法
  • 吸收合并控股合并新设合并的区别
  • 确认应收账款不确认收入
  • 以库存现金代垫怎么做账
  • 房地产增值税发票有什么用
  • 冲销无形资产如何会计分录?
  • 红字冲回上月收入
  • 银行非保本理财420天有风险吗
  • 期初建账实验步骤
  • 3%增值税专用发票可以抵扣多少
  • 电商退款
  • 投资管理公司收费
  • 城建税计税依据及税率
  • 研发费用领用材料
  • 电子税务局哪里打印发票
  • 非征期不允许上报汇总是怎么回事
  • 苹果中国区副总裁
  • windows 11怎么用
  • 什么是馥芮白
  • linux直接运行jar
  • winspool.drv病毒
  • thinkphp curl
  • 小微企业所得税税收优惠政策2023年
  • 加德满都治安状况如何
  • 汇总开具发票
  • 作废的专票能认证过去吗
  • 一次性扣除固定资产汇算清缴
  • framework4.0怎么打开
  • vue运行报错怎么解决
  • php中可用于设置变量类型的函数
  • php实现上传文件
  • php数据的提交与采集实验报告
  • parted命令详解
  • 筹办期间发生的广告费和业务宣传费可以扣除吗
  • phpcms v9安装教程
  • 事业单位会计制度
  • 公司贷款可以转私户吗
  • 股东权益合计等于净资产吗
  • 股票期权的所得税处理
  • 社保逾期滞纳金和利息
  • 住院发票能否用医保卡
  • 购买二氧化氯
  • 国际货运代理公司税率为啥是免税
  • 普通发票怎么开?
  • ubuntu 管理软件
  • window小技巧
  • freebsd 安装
  • wkqkpick.exe进程是什么
  • linux系统百科
  • 在windows下把绿色程序添加到鼠标右键的方法
  • exe文件xp3
  • linux page buffer cache深入理解
  • 获取windows的最新信息要跳过吗
  • 优化太差
  • ubuntu运行qt程序
  • ExtJS Ext.MessageBox.alert()弹出对话框详解
  • 基于javaweb的物流管理系统
  • python 二叉树
  • javascript教程chm
  • color 对于当前会话,更改命令提示窗口的前景和背景色
  • nodejs登录成功跳转
  • Javascript字符串对象函数
  • 基于js实现微信直播
  • 安卓 旋转屏幕
  • 公司开票明细如何查询
  • 财产保险合同的种类
  • 金税盘电子发票怎么开
  • 深圳市的各区域排名
  • 增值税开票系统升级
  • 成都个税证明
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设