Vue3【二十】Vue3 路由和组件页面切换

Vue3【二十】Vue3 路由和组件页面切换

Vue3【二十】Vue3 路由和组件页面切换
Vue3 路由的创建
路由的引入
路由的配置
路由的导出
路由的url模式 带# 或不带

案例截图

Vue3页面切换

目录结构

在这里插入图片描述

案例代码

app.vue

<template><div class="app"><h2 class="title">Vue3 路由和组件页面切换测试</h2><!-- 导航区 --><div class="navigate"><RouterLink to="/home" active-class="active"> 首页 </RouterLink><RouterLink to="/news" active-class="active"> 新闻 </RouterLink><RouterLink to="/about" active-class="active"> 关于 </RouterLink></div><!-- 展示区 --><div class="main-content"><RouterView /></div></div>
</template><script lang="ts" setup name="App">
// npm install vue-router //安装路由器import { RouterView } from 'vue-router';</script><style scoped>
.app {background-color: #4fffbb;box-shadow: 0 0 10px;border-radius: 10px;padding: 10px;
}
.title{text-align: center;word-spacing: 5px;margin: 30px 0;height: 70px;line-height: 70px;background-image: linear-gradient(45deg, #cecece, #fff);border-radius: 10px;box-shadow: 0 0 2px;font-size: 30px
}
.navigate {display: flex;justify-content: space-around;margin: 0 100px;
}
.navigate a {display: block;text-align: center;width: 90px;height: 40px;line-height: 40px;border-radius: 10px;background-color: #818080;text-decoration: none;color: #fff;/* font-size: 5px; */letter-spacing: 5px;
}
.navigate a.active {color: #ffc268;background-color: #fff;border: 1px solid #ffc268;font-weight: 900;/* text-shadow: 0 0 1px black; */font-family: 微软雅黑;
}.main-content {margin: 0 auto;margin-top: 30px;margin-bottom: 30px;border-radius: 10px;width: 90%;height:400px;border: 1px solid;
}
</style>

index.ts

// 创建一个路由器,并暴漏出去// 第一步:引入createRouter
import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
// 引入各种组件 
import Home from '@/components/Home.vue'
import About from '@/components/About.vue'
import News from '@/components/News.vue'
// 第二步:创建路由器
const router = createRouter({// 配置路由模式 // createWebHistory 模式:url不带#号,// createWebHashHistory模式:url 带#号history: createWebHistory(),// 配置路由规则routes: [{ path: '/', redirect: '/home' },{ path: '/home', component: Home },{ path: '/about', component: About },{ path: '/news', component: News }]
})// 第三步:导出路由器
export default router

main.ts

// 引入createApp用于创建应用
import { createApp } from 'vue'
// 引入APP根组件
import App from './App.vue'// createApp(App).mount('#app')// 引入路由器
import router from './router'// 创建一个应用
const app = createApp(App)// 使用路由器
app.use(router)// 挂载整个应用到app容器
app.mount('#app')

About.vue


<template><div class="about"><h2>About 关于我们 </h2><h2>公众号:脑力汇 </h2></div>
</template><script setup lang="ts" name="Home"></script><style scoped>
.home {display: flex;justify-content: center;align-items: center;height: 100%;color: rgb(85, 84,84);font-size: 18px;
}
</style>

News.vue

<template><div class="news"><ul><li><a href="#"> 新闻------001</a></li><li><a href="#"> 新闻------002</a></li><li><a href="#"> 新闻------003</a></li><li><a href="#"> 新闻------004</a></li><li><a href="#"> 新闻------005</a></li><li><a href="#"> 新闻------006</a></li></ul></div>
</template><script setup lang="ts" name="About"></script><style scoped>
.news {padding: 0 20px;display: flex;justify-content: space-between;height: 100%;
}
.news ul {margin-top: 30px;list-style: none;padding-left: 10px
}
.news li>a {font-size: 18px;line-height: 40px;text-decoration: none;color: #333;text-shadow: 0 0 1px rgb(0, 84, 0);
}
.news-content{width: 70%;height: 90%;border: 1px solid;margin-top: 20px;border-radius: 10px;
}
</style>

Home.vue

<template><div class="home"><img src="/public/logo.png" alt=""></div>
</template><script setup lang="ts" name="Home"></script><style scoped>
.home {display: flex;justify-content: center;align-items: center;height: 100%;
}
img {width: 10%;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/26312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CPN Tools实现hello world小案例

新建一个net&#xff0c;创建两个输入P1,P2&#xff0c;一个输出P3&#xff0c;一个转换T1&#xff0c;并对输入输出place使用字符串颜色集。&#xff08;这里是左键单击P&#xff0c;然后tab键输入String即可&#xff09;。 为地点指定颜色集需要&#xff1a; 1) 通过左键单击…

【详解Python文件: .py、.ipynb、.pyi、.pyc、​.pyd !】

今天同事给我扔了一个.pyd文件&#xff0c;说让我跑个数据。然后我就傻了。。 不知道多少粉丝小伙伴会run .pyd代码文件&#xff1f;如果你也懵懵的&#xff0c;请继续往下读吧。。 Python文件是存储Python代码或数据的文本文件&#xff0c;通常以.py作为文件扩展名。这些文件…

3. 打造个性化可爱怪物表情包:详细步骤教学

表情符号已经成为当今互联网对话中不可或缺的元素&#xff0c;一句话加上一个笑脸符号&#xff0c;语气就大不同。表情符号与我们一道稳步发展&#xff0c;成为鲜活和丰富情感的必要交流工具。通过表情符号&#xff0c;几个像素就能以有趣、清晰、能引起情感共鸣的方式表达我们…

Linux系统编程——进程间通信(管道与共享内存)

目录 一&#xff0c;进程间通信预备 二&#xff0c;匿名管道 2.1 管道原理 2.2 匿名管道原理 2.3 pidof工具 ​编辑 2.4 pipe() 2.6 管道的四种情况 2.8 进程池 三&#xff0c;命名管道 3.1 关于命名管道 3.2 mkfifo命令创建命名管道 3.3 mkfifo系统接口创建命名管…

你好,Jetpack Compose

文章目录 为什么选 Jetpack Compose先决条件新建项目新建虚拟设备运行项目 为什么选 Jetpack Compose Jetpack Compose 是 Android 开发最新的、现代化的 UI 框架开发者几乎只需要使用 Kotlin 一门语言即可完成 App 开发&#xff08;Java 是基础&#xff0c;有些源码是 Java 写…

JS :深拷贝解析与实现(附structuredClone语法测试)

浅拷贝简介 深拷贝是创建一个新对象&#xff0c;这个新对象包含原对象所有属性的全新拷贝&#xff0c;无论是基本数据类型还是引用类型的数据都会被完全复制一份&#xff0c;新旧对象间不存在任何关联&#xff0c;彼此独立。 前言 OK&#xff0c;最近又又又在学习JS的过程中…

SwiftUI六组合复杂用户界面

代码下载 应用的首页是一个纵向滚动的地标类别列表&#xff0c;每一个类别内部是一个横向滑动列表。随后将构建应用的页面导航&#xff0c;这个过程中可以学习到如果组合各种视图&#xff0c;并让它们适配不同的设备尺寸和设备方向。 下载起步项目并跟着本篇教程一步步实践&a…

69. UE5 RPG 使用Gameplay Cue 实现技能表现效果

在上一章中&#xff0c;我们实现了敌人的攻击技能的特效和音效。如果我们在多人模式下打开&#xff0c;发现&#xff0c;其它客户端看不到对应的效果。 造成这种问题的原因是因为敌人的技能是运行在服务器端的&#xff0c;它只复制到拥有它的客户端&#xff0c;而敌人的效果对于…

30、 shell脚本进阶

shell脚本ifcase 一、条件测试 1.1、条件测试&#xff1a;$?----返回码&#xff0c;判断命令或者脚本是否执行成功&#xff08;最近的一条&#xff09; 0 true 为真就是成功 成立 非0 false 失败或者异常。 二、test命令 test命令&#xff1a;可以进行条件测试&#xff…

Python内存管理与垃圾回收机制

目录 一、引言 二、Python内存管理概述 三、引用计数机制 四、垃圾回收机制 标记-清除&#xff08;Mark-and-Sweep&#xff09; 分代收集&#xff08;Generational Collection&#xff09; 五、内存泄漏与优化 六、总结 一、引言 Python作为一门高级编程语言&#xff…

Wells Fargo 借助 MongoDB 推出下一代银行卡支付

MongoDB客户案例导读 MongoDB以其灵活的数据模型、高性能的实时分析能力和可扩展的分布式架构&#xff0c;帮助Wells Fargo富国银行显著提升了数据处理效率和业务响应速度&#xff0c;为其大型机现代化和数字化转型提供了强有力的技术支撑。 金融服务市场正在经历一场变革&am…

像备份Windows一样简单的ghost软件!

数据的安全性对于个人用户和企业来说都至关重要。尤其是运行着重要服务的Linux系统,一旦遇到系统崩溃或硬件故障,如果没有及时的备份,可能会导致不可估量的损失。这时,一款强大而易用的备份还原工具就显得尤为重要。G4L(Ghost for Linux)就是这样一款专为Linux系统设计的…

2024年数字技术与智慧教育国际会议(DTSE 2024,7月26-28)

2024年数字技术与智慧教育国际会议&#xff08;DTSE 2024&#xff09;将于2024年7月26日在广东省广州市召开&#xff0c;本次会议专注于“数字技术与智慧教育”领域&#xff0c; 将汇集全球范围内的学者、研究人员以及教育技术开发者&#xff0c;共同探索和分享该领域内的最新学…

实验12 路由重分布

实验12 路由重分布 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 在大型网络的组建过程中&#xff0c;隶属不同机构的网络部分往往会根据自身的实际情况来选用路由协议。例如&#xff0c;有些网络规模很小&#xff0c;为了管理简单&…

比特币私钥公钥地址生成

比特币私钥公钥地址生成算法 原理 实现 #!coding:utf8#author:yqq #date:2019/3/4 0004 14:35 #description: 比特币地址生成算法import hashlib import ecdsa import os#2019-05-15 添加私钥限制范围 g_b58 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz#g…

Linux Radix tree简介

文章目录 前言一、Radix tree简介二、Operations2.1 Lookup2.2 Insertion2.3 Deletion 三、Linux内核API3.1 初始化3.2 radix_tree_insert/delete3.3 radix_tree_preload3.4 radix_tree_lookup3.5 radix_tree_tag_set3.6 radix_tree_tagged 四、address_space4.1 简介4.2 相应数…

使用Arrays.asList 报错Nullpointerexception 需要提前对参数进行判空

//为什么这样的时候会报空指针异常**Arrays.asList 这里这个方法中的参数为空**String[] checkedResourceNos1 dto.getCheckedResourceNos();List<String> checkedResourceNos null; //需要在这里**判断是否为空**&#xff0c;**不为空才能**调**用Arrays.asList转化为…

IC验证中有符号浮点数的运算(避坑)

如上图&#xff0c;仅第一种表达才能计算出正确的结果-180&#xff0c;另外两种方式存在缺少符号和溢出的错误&#xff0c;计算出的均是180&#xff0c;其中reg[31:0] theta_q31 h8000_0000。 如果 theta_q31 h8000_0000到h7fff_ffff之间的数时&#xff0c;上述第一种表达仅能…

暗色系B端界面有什么好处、应用场景、缺点、该如何设计。

B端管理系统界面蓝色系和浅色系的非常多&#xff0c;暗色系一般不作为首选&#xff0c;这背后是什么原因呢&#xff0c;如果真的要设计暗色系界面&#xff0c;该如何办呢&#xff0c;本文就解决这些问题。 一、暗色系B端界面相对于浅色系有什么好处 1. 减少眩光和视觉疲劳&am…

国学诗词app开发,学古贯今,句句珠玑

“鹅鹅鹅&#xff0c;曲项向天歌。”这是很多人学会的第一首诗&#xff0c;国学诗词作为中华传统文化的重要组成部分&#xff0c;不仅在历史中占据重要地位&#xff0c;也是儿童学前启蒙的不二选择。对于家长来说&#xff0c;他们更喜欢在学前教孩子一些经典国学和古诗词&#…