项目架构初始化,底部导航页面切换

article/2025/6/16 0:15:05

引言

在移动端应用开发中,底部导航栏是一种常见的用户界面元素,用于在不同的页面之间进行快速切换。本文将介绍如何初始化一个 Vue.js 项目,并实现底部导航栏页面切换的功能。
在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

初始化项目

首先,使用 Vue CLI 初始化一个新的 Vue.js 项目:

vue create my-app
cd my-app

在初始化过程中,可以选择需要的插件和配置,例如 Babel、Router、Vuex 等。

安装依赖

为了实现底部导航栏,我们可以使用 vue-router 进行页面路由管理,并使用一个 UI 组件库如 Vant 来快速构建导航栏。

npm install vue-router vant

配置路由

src 目录下创建 router 文件夹,并在其中创建 index.js 文件:

// src/router/index.js
import Vue from 'vue';
import Router from 'vue-router';
import Home from '@/views/Home.vue';
import Category from '@/views/Category.vue';
import Cart from '@/views/Cart.vue';
import Profile from '@/views/Profile.vue';Vue.use(Router);export default new Router({
routes: [
{
path: '/',
name: 'home',
component: Home
},
{
path: '/category',
name: 'category',
component: Category
},
{
path: '/cart',
name: 'cart',
component: Cart
},
{
path: '/profile',
name: 'profile',
component: Profile
}
]
});

创建视图组件

src/views 目录下创建四个视图组件:Home.vueCategory.vueCart.vueProfile.vue

<!-- src/views/Home.vue -->
<template>
<div>
<h1>首页</h1>
</div>
</template><script>
export default {
// ...
};
</script>

其他视图组件类似创建。

配置底部导航栏

App.vue 中配置 VantTabbar 组件:

<!-- src/App.vue -->
<template>
<div id="app">
<van-tabbar v-model="active" route>
<van-tabbar-item icon="home-o" to="/">首页</van-tabbar-item>
<van-tabbar-item icon="search" to="/category">分类</van-tabbar-item>
<van-tabbar-item icon="shopping-cart-o" to="/cart">购物车</van-tabbar-item>
<van-tabbar-item icon="user-o" to="/profile">我的</van-tabbar-item>
</van-tabbar>
<router-view />
</div>
</template><script>
export default {
data() {
return {
active: 0
};
}
};
</script><style>
/* 添加一些基本样式 */
</style>

启动项目

main.js 中引入路由和样式:

// src/main.js
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import 'vant/lib/index.css';Vue.config.productionTip = false;new Vue({
router,
render: h => h(App)
}).$mount('#app');

然后启动项目:

npm run serve

结论

通过以上步骤,我们初始化了一个 Vue.js 项目,并实现了底部导航栏页面切换的功能。使用 vue-router 进行路由管理,结合 VantTabbar 组件,可以快速构建出符合移动端应用设计的底部导航栏。开发者可以根据实际需求进一步扩展和优化功能。


http://www.hkcw.cn/article/mGlSOoQymC.shtml

相关文章

51c大模型~合集133

我自己的原文哦~ https://blog.51cto.com/whaosoft/13948969 #用Veo 3Suno做了个AI Rapper 吊打音乐节上的流量明星 太疯狂了&#xff01;AI生成的嘻哈歌手唱Rap以假乱真&#xff0c;网友直呼「看不出破绽」。 来来来&#xff0c;眼尖的朋友请告诉我&#xff0c;下面这个…

俄称控制定居点 乌称打击俄纵深目标 双方战事持续升级

俄罗斯国防部5月31日发布战报称,俄军控制了苏梅州沃多拉哈和顿涅茨克地区诺沃波利居民点。在过去24小时内,俄军在苏梅、哈尔科夫、顿涅茨克、扎波罗热、赫尔松等方向打退乌军多次进攻并发动多次攻势。乌克兰武装部队总司令瑟尔斯基同一天表示,乌军在5月使用远程精确武器打击…

机器学习知识图谱——K-means++聚类算法

目录 一、图解K-means++ 聚类算法知识图谱 二、K-means 是什么? 三、K-means++ 是什么? 四、K-means++ 算法流程 第一步:选择初始质心(核心改进) 第二步:执行 K-means 正式流程 五、算法图示 六、优点 vs 缺点 七、常用场景 八、Python 代码示例 (使用 sklear…

Java SE 2.数据类型与变量

Java是一门强类型语言&#xff0c;数据类型和变量是构建程序的基石。理解数据类型的选择和变量的定义方式&#xff0c;直接影响代码的性能和可读性。就一句话&#xff1a;数据类型和变量很重要&#xff01; 1. 字面常量 我们刚接触Java时&#xff0c;曾写过一个简单的程序&am…

数据结构-算法学习C++(入门)

目录 03二进制和位运算04 选择、冒泡、插入排序05 对数器06 二分搜索07 时间复杂度和空间复杂度08 算法和数据结构09 单双链表09.1单双链表及反转09.2合并链表09.2两数相加09.2分隔链表 013队列、栈、环形队列013.1队列013.2栈013.3循环队列 014栈-队列的相互转换014.1用栈实现…

【前端】SPA v.s. MPA

链接&#xff1a;页面结构 误区 页面结构管理有两种常见方式&#xff1a;路由形式 和 组件形式。路由形式 对应MPA &#xff0c;组件形式对应SPA ❌ 误区 1&#xff1a;路由形式 MPA❌ 路由是 SPA 和 MPA 共有的概念&#xff0c;区别在于路由映射的对象&#xff1a; MPA 的…

国米0-5创欧冠决赛最大分差 巴黎青春风暴横扫夺冠

在安联球场举行的欧冠决赛中,巴黎圣日耳曼以5比0横扫国际米兰,创造了欧冠决赛历史上的最大分差纪录。此前欧冠决赛的最大分差为四球,最近一次是1993-1994赛季AC米兰对巴萨的4比0。恩里克带领下的巴黎圣日耳曼首次赢得欧冠冠军,他们的表现令人震惊。比赛开始后不久,巴黎便迅…

樊振东加盟德甲 俱乐部披露幕后 签约过程震撼乒坛

FC萨尔布吕肯俱乐部宣布,奥运冠军樊振东将加盟球队。当樊振东在社交媒体上发布观看欧冠的照片时,另一条消息也震惊了乒乓球圈:他将在新赛季代表萨尔布吕肯出战德国乒乓球甲级联赛(TTBL)。俱乐部官方公告中提到,前世界排名第一的樊振东将在新赛季为萨尔布吕肯效力。这位28…

Yunxi期中

Misc 谍影重重plus&#xff08;misc&#xff09; 随波逐流修复伪加密 零宽字符解密&#xff0c;&#xff1f;&#xff1f;&#xff1f;需要爆破 import itertools import stringdef generate_symmetric_passwords():# 扩展字符集&#xff1a;大小写字母 数字 符号chars st…

2024年ESWA SCI1区TOP,自适应学习灰狼算法ALGWO+无线传感器网络覆盖优化,深度解析+性能实测

目录 1.端午快乐2.摘要3.灰狼算法GWO原理4.改进策略5.结果展示6.参考文献7.代码获取8.读者交流 1.端午快乐 今天端午节&#xff0c;祝各位朋友端午安康&#xff0c;阖家平安&#xff01; 2.摘要 无线传感器网络&#xff08;WSNs&#xff09;是一种被广泛应用的新兴技术&…

YOLOv8 移动端升级:借助 GhostNetv2 主干网络,实现高效特征提取

文章目录 引言GhostNetv2概述GhostNet回顾GhostNetv2创新 YOLOv8主干网络改进原YOLOv8主干分析GhostNetv2主干替换方案整体架构设计关键模块实现 完整主干网络实现YOLOv8集成与训练模型集成训练技巧 性能对比与分析计算复杂度对比优势分析 部署优化建议结论与展望 引言 目标检…

【Oracle】TCL语言

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. TCL概述1.1 什么是TCL&#xff1f;1.2 TCL的核心功能 2. 事务基础概念2.1 事务的ACID特性2.2 事务的生命周期 3. COMMIT语句详解3.1 COMMIT基础语法3.2 自动提交与手动提交3.3 提交性能优化 4. ROLLBACK语句…

设计模式——单例设计模式(创建型)

摘要 本文详细介绍了单例设计模式&#xff0c;包括其定义、结构、实现方法及适用场景。单例模式是一种创建型设计模式&#xff0c;确保一个类只有一个实例并提供全局访问点。其要点包括唯一性、私有构造函数、全局访问点和线程安全。文章还展示了单例设计模式的类图和时序图&a…

STM32F103C8T6,bxCAN收发配置实例,包含ID过滤

文章目录 引言bxCAN简介bxCAN主要特点代码示例引言 bxCAN简介 bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B。它的设计目标是,以最小的CPU负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。 对于安全紧要的应…

使用 HTML + JavaScript 实现可拖拽的任务看板系统

本文将介绍如何使用 HTML、CSS 和 JavaScript 创建一个交互式任务看板系统。该系统支持拖拽任务、添加新任务以及动态创建列&#xff0c;适用于任务管理和团队协作场景。 效果演示 页面结构 HTML 部分主要包含三个默认的任务列&#xff08;待办、进行中、已完成&#xff09;和…

进程间通信II·命名管道

目录 原理 创建过程 特性 代码练习 客户端与服务端交互 小知识 原理 原理&#xff1a;两个进程各自的struct file 指向相同的inode和文件缓冲区&#xff08;这里的inode和文件缓冲区也应用了引用计数&#xff09;。 命名管道创建的是磁盘上的一种不刷新数据到缓冲区的常规…

Redis--缓存工具封装

经过前面的学习&#xff0c;发现缓存中的问题&#xff0c;无论是缓存穿透&#xff0c;缓存雪崩&#xff0c;还是缓存击穿&#xff0c;这些问题的解决方案业务代码逻辑都很复杂&#xff0c;我们也不应该每次都来重写这些逻辑&#xff0c;我们可以将其封装成工具。而在封装的时候…

ZC-OFDM雷达通信一体化减小PAPR——选择性映射法(SLM)

文章目录 前言一、SLM 技术1、简介2、原理 二、MATLAB 仿真1、核心代码2、仿真结果 三、资源自取 前言 在 OFDM 雷达通信一体化系统中&#xff0c;信号的传输由多个子载波协同完成&#xff0c;多个载波信号相互叠加形成最终的发射信号。此叠加过程可能导致信号峰值显著高于其均…

ESP32-idf学习(四)esp32C3驱动lcd

一、前言 屏幕是人机交互的重要媒介&#xff0c;而且现在我们产品升级的趋势越来越高大尚&#xff0c;不少产品都会用lcd来做界面&#xff0c;而esp32c3在一些项目上是可以替代主mcu&#xff0c;所以驱动lcd也是必须学会的啦 我新买的这块st7789&#xff0c;突然发现是带触摸…

Remote Sensing投稿记录(投稿邮箱写错、申请大修延期...)风雨波折投稿路

历时近一个半月&#xff0c;我中啦&#xff01; RS是中科院二区&#xff0c;2023-2024影响因子4.2&#xff0c;五年影响因子4.9。 投稿前特意查了下预警&#xff0c;发现近五年都不在预警名单中&#xff0c;甚至最新中科院SCI分区&#xff08;2025年3月&#xff09;在各小类上…