vue3 vue-router的安装及配置 (一)

news2024/11/28 16:41:47

文章目录

  • 一、安装
  • 二、Vue Router配置
    • 2.1 vue-router两种引入方式的区别
    • 2.2 不同的历史模式
  • 三、router-link
  • 四、router-view

Vue Router作用:在应用程序中实现优雅的导航和路由管理。

一、安装

注意:vue3安装的是vue-router@4,vue2安装的是vue-router@3,这里我们讲解的是vue3,所以应当安装其4版本。

npm install vue-router@4

二、Vue Router配置

在下面的代码中,我们首先创建router文件引入createRouter 和 createWebHistory 函数。然后定义了路由规则并创建了一个router实例。最后我们在main.ts文件中使用app.use(router)将router实例挂载到Vue应用程序中。

//router/index.ts
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";

const routes: Array<RouteRecordRaw> = [
  { path: "/", component: () => import("@/views/home/index.vue") },
  { path: "/about", component: () => import("@/views/about/index.vue") },
];

export const router = createRouter({
  history: createWebHistory(),
  routes,
});


//main.ts
import { createApp } from 'vue'
import { router } from "@/router/index";
const app = createApp(App)
app.use(router)
app.mount('#app')

2.1 vue-router两种引入方式的区别

  • 1、直接组件引入
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
import home from "@/views/home/index.vue";
import about from "@/views/about/index.vue";

const routes: Array<RouteRecordRaw> = [
  { path: "/", component: home },
  { path: "/about", component: about },
];

export const router = createRouter({
  history: createWebHistory(),
  routes,
});

直接把组件引入进来,不关路径访问或不访问,都把组件引用进来。一次性加载这么多内容,加载会很慢。而且打包时这种方式会这直接将引入的组件一起打进一个js文件中,造成性能问题。

  • 2、异步加载/懒加载
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";

const routes: Array<RouteRecordRaw> = [
  { path: "/", component: () => import("@/views/home/index.vue") },
  { path: "/about", component: () => import("@/views/about/index.vue") },
];

export const router = createRouter({
  history: createWebHistory(),
  routes,
});

访问了才加载,没有访问就不加载,项目中推荐使用此方式

2.2 不同的历史模式

  • Hash 模式
    • 后面有个#
    • 不会触发重载页面:随意打上 # + 任意字符并回车,浏览器会认为你想要跳转到当前页面某个位置
    • SEO差:google spider(谷歌的爬虫)会忽视掉 # 后面的内容

hash模式 原理是通过监听 hashchange 事件来实现路由的切换

window.addEventListener('hashchange', function(event){ 
  // console.log(event)
})
  • history模式
    • 更友好的URL
    • 无刷新页面切换
    • 更好的SEO
    • 需要服务器配置要求
window.addEventListener('popstate', function(event) {
  console.log(event);
});

三、router-link

该标签是一个vue-router中已经内置的组件,它会被渲染成一个<a>标签,但比<a>标签更好的是可以在不重新加载页面的情况下更改 URL

<!--使用 router-link 组件进行导航 -->
<!--通过传递 `to` 来指定链接 -->
<!--`<router-link>` 将呈现一个带有正确 `href` 属性的 `<a>` 标签-->
<router-link to="/home">Go to Home</router-link>
<router-link to="/about">Go to About</router-link>

在这里插入图片描述

上面to属性除了字符串的写法还可以写成对象的形式:

<router-link :to="{ path: '/home' }">home</router-link>
<router-link :to="{ name: 'about' }">about</router-link>

四、router-view

router-view 将显示与 url 对应的组件。你可以把它放在任何地方,以适应你的布局

<template>
  <router-link :to="{ path: '/home' }">home</router-link>
  <router-link :to="{ name: 'about' }">about</router-link>
  <router-view></router-view>
</template>

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

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

相关文章

Java核心知识点整理大全27-笔记(已完结)

目录 30. 云计算 30.1.1. SaaS 30.1.2. PaaS 30.1.3. IaaS 30.1.4. Docker 30.1.4.1. 概念 30.1.4.2. Namespaces 30.1.4.3. 进程(CLONE_NEWPID 实现的进程隔离) 30.1.4.4. Libnetwork 与网络隔离 30.1.4.5. 资源隔离与 CGroups 30.1.4.6. 镜像与 UnionFS 30.1.4.7.…

2024年天津财经大学珠江学院专升本专业课《管理学原理》考试大纲

天津财经大学珠江学院2024年高职升本科专业课考试《管理学原理》考试大纲 一、本大纲系天津财经大学珠江学院2024年高职升本科《管理学原理》课程考试大纲。所列考试范围出自徐碧琳主编的教材《管理学原理&#xff08;第二版&#xff09;》&#xff0c;机械工业出版社&#xff…

玻色量子计算应用奖公布!MathorCup大赛圆满落幕

2023年8月15日&#xff0c;中国优选法统筹法与经济数学研究会主办的2023年第十三届MathorCup高校数学建模挑战赛圆满落幕。为了培养优秀学子的创新意识及运用数学方法和量子计算技术解决实际问题的能力&#xff0c;推动量子计算的实际落地应用&#xff0c;北京玻色量子科技有限…

【读点论文】A Survey of Quantization Methods for Efficient Neural Network Inference

A Survey of Quantization Methods for Efficient Neural Network Inference Abstract 一旦抽象的数学计算适应了数字计算机的计算&#xff0c;在这些计算中如何有效地表示、处理和传递数值的问题就出现了。与数字表示问题密切相关的是量化问题:一组连续的实值数应该以何种方…

计算机专业拟招100人,只考数据结构或计算机网络!石家庄铁道大学2024年硕士研究生招生简章

石家庄铁道大学2024招生简章 计算机专业目录 计算机专业参考书目 初试书目 814 数据结构&#xff08;一&#xff09; 《数据结构&#xff08;C 语言版&#xff09;》&#xff08;第 2 版&#xff09; 人民邮电出版社&#xff0c;严蔚敏&#xff0c;李冬梅&#xff0c;吴伟民…

header二

第二题就是在referer添加SQL语句进行注入和上一题步骤一样 第三题 再用上面那个方法就行不通了&#xff0c;多加了一层过滤 1and updatexml(1,"1",1),1) -- 1 1and updatexml(1,concat("1",(select database())),1),1) -- 1 1and updatexml(1,concat("…

解决typescript报错:找不到名称xxx

现象&#xff1a; 原因&#xff1a;在同时导入默认导出和命名导出时&#xff0c;默认导出必须放在命名导出之前 下面的就是原始文件&#xff1a; 默认导出指&#xff1a; export default导出类型&#xff0c; import时无需大括号 命名导出指&#xff1a; 仅有export关键字…

全面对比:21款主流免费项目管理系统的优劣势

国内外免费的21款项目管理工具&#xff1a;1.国产研发项目管理软件- PingCode &#xff1b;2.国产免费项目协作管理工具- Worktile &#xff1b;3.个人免费项目管理软件-Teambition&#xff1b;4.开源免费项目管理系统-Redmine&#xff1b;5.免费的项目规划工具-Bitrix24 &…

SpringBoot + Spring Cloud Alibaba + Nacos实现服务管理

1、参考文档 Spring Cloud Alibaba参考文档 https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/zh-cn/index.html Spring Cloud Alibaba官方文档 https://github.com/alibaba/spring-cloud-alibaba/wiki/ 2、引入 Alibaba 依赖 每个 SpringBoot 都有对应的…

springboot 整合 RocketMQ 可用于物联网,电商高并发场景下削峰,保证系统的高可用

本文根据阿里云 RocketMQ产品文档整理&#xff0c;地址:https://help.aliyun.com/document_detail/29532.html?userCodeqtldtin2 RocketMQ是由阿里捐赠给Apache的一款低延迟、高并发、高可用、高可靠的分布式消息中间件。经历了淘宝双十一的洗礼。RocketMQ既可为分布式应用系统…

软件测试,缺少项目实战怎么办?

解决办法 你可以进行一个简单的web测试。 以我目前的认知和经验&#xff0c;悄悄告诉你&#xff1a;政府网站大概率会有bug。 在著此文时&#xff0c;我随便找了个地方政府网站&#xff0c;点了进去。 http://www.yibin.gov.cn/en/ybsq/201905/t20190513_976652.html 大家…

(04730)电路分析基础之电路概述

https://www.yuque.com/huangzhanqi/nrt1l4/ffxapo8ql8l2ouux&#xff08;完整笔记&#xff09; 电路有实际电路与电路模型之分&#xff0c;前者是实际存在的电路&#xff0c;后者是把实际电路在一定条件下理想化而得到。 电路 电路就是电流通过的闭合路径&#xff0c;它是由…

2023年拼多多双11研究报告:销售额环比增长12%

随着2023年双11正式落下帷幕&#xff0c;拼多多电商也为今年双11购物狂欢节交上了一份答卷&#xff1a;实现278.6亿元交易额&#xff0c;环比一个月前增长12%。 面对这个销售增量的市场&#xff0c;有哪些类目和品牌脱颖而出&#xff0c;又呈现出怎样的发展趋势呢&#xff1f;…

【网络安全技术】消息认证技术

一、哈希函数 1.安全性质 1&#xff09;抗第一原像攻击&#xff08;Preimage Resistance&#xff09; 给定哈希后的值&#xff0c;很难找到哈希前的原消息。这很好理解&#xff0c;需要哈希函数具有单向性。 一个简单的例子就是密码存储系统&#xff0c;用户登录服务器需要…

一、技术体系结构

本章概要 总体技术体系框架概念和理解 1.1 总体技术体系 单一架构一个项目&#xff0c;一个工程&#xff0c;导出为一个war包&#xff0c;在一个Tomcat上运行。也叫all in one。 单一架构&#xff0c;项目主要应用技术框架为&#xff1a;Spring , SpringMVC , Mybatis 分布…

CoreDNS实战(三)-CoreDNS+ETCD实现DNS负载均衡

1 概述 DNS负载均衡简单来说就是通过一个域名绑定多个IP地址&#xff0c;当客户端访问域名时&#xff0c;DNS服务器将轮询返回其中一个IP&#xff0c;实现客户端分流的作用。 在K8s环境中CoreDNS作为容器服务的DNS服务器&#xff0c;那么就可以通过CoreDNS来实现DNS负载均衡&a…

语音AI大模型公司AssemblyAI完成5000万美元C轮融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于美国加州旧金山的语音AI大模型公司AssemblyAI今日宣布已完成5000万美元C轮融资。 本轮融资完成后&#xff0c;AssemblyAI的融资总额已经达到了1.15亿美元&#xff0c;本轮融资由Accel领投…

【优选算法】1089.复写零

链接&#x1f517;&#xff1a;1089. 复写零 - 力扣&#xff08;LeetCode&#xff09; 一&#xff0c;题目解析 要点均用红框圈起来了&#xff0c;特别注意 不要超过数组长度&#xff01;&#xff01;&#xff01; 二&#xff0c;算法原理 通过双指针算法来实现 主要步骤如…

双系统安装过程及其问题解决方案

安装前提示&#xff1a; Windows 上安装 kylin 时&#xff0c;应保证 BIOS 的引导模式时一样的&#xff0c;要么都是 legacy&#xff0c;要么 都是 uefi 引导。否则会导致 windows 无法引导。 安装步骤 1、 在 windows 上右键我的电脑选择管理&#xff0c;在弹出的界面中双击…