Vue-router快速入门 是什么 如何跳转 如何传值的问题

3.1 Vue-router是什么

Vue-router:Vue.js 的官方路由为 Vue.js 提供富有表现力、可配置的、方便的路由

官网:https://router.vuejs.org/zh/

作用:

1.实现vue页面(组件)的跳转

2.可以在跳转的时候携带参数

3.2 Vue3使用Vue-router(静态路由)

在这里插入图片描述

基于Vue-router实现页面跳转

静态路由步骤:
1.安装vue-router
2.实现一个vue3的页面编写
3.在src创建文件router,创建路由的js文件 index.js
4.在main.js中实现路由的配置
5.在app.vue主页 使用路由

静态路由具体步骤:
1.安装vue-router
npm install vue-router@4
2.实现一个vue3的页面编写
views-study.vue

<!-- 标签 画中画 -->
<template><div><h1>学习vue3</h1><div><h1>内容:{{ str1 }}</h1><button style="font-size: 30px;color: red" @click="show">查看内容</button></div></div>
</template><!-- Vue3的写法 setup -->
<script setup>
//导入
import {ref} from "vue";//定义变量
const str1=ref("醒醒...")
const show = () => {alert(str1.value)
}
</script><style scoped></style>

3.在src创建路由的js文件
router-index.js

import {createRouter as _createRouter, createWebHistory} from 'vue-router';
// 导入 凡是想要通过路由跳转的,都需要在这:
// 1.导入
// 2.注册 设置对应vue组件的路径名
import study from '../views/study.vue'const routes = [// 2.注册 设置对应vue组件的路径名{ path: '/study', component: study }
]export function createRouter() {return _createRouter({history: createWebHistory(),routes})
}

4.在main.js中实现路由的配置
man.js

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
//导入路由
import { createRouter } from "./router/index.js"
//配置路由
createApp(App).use(createRouter()).mount('#app')

5.在app.vue主页 使用路由

<template><div><!-- 静态路由 to 对应路径 --><router-link to="/study">静态路由</router-link></div><div><router-view/></div>
</template><!--js代码 vue3的语法-->
<script setup>
</script><!-- css样式 美化 -->
<style scoped></style>

3.3 Vue-router实现跳转的方式

vue-router实现页面跳转有2种方式:

必须在页面使用:router-view(一般写在app.vue页面)

第一种:声明式路由(静态路由)

直接在template里面使用router-link标签 通过 to属性实现页面跳转

  <div>
<!--    静态路由 to 对应路径--><router-link to="/study">静态路由</router-link></div>

第二种:编程式路由(动态路由)

实现步骤

  1. views-learn.vue
  2. router-index.js
  3. App.vue

实现具体步骤

  1. views包-learn.vue
<template>
<div><h1>动态路由</h1><button @click="tz">点击跳转</button>
</div>
</template><!-- Vue3的写法 setup -->
<script setup>
//导入
import {ref} from "vue";
import { useRouter } from 'vue-router'
// 声明变量
const router=useRouter()
const tz = () => {//基于路由 实现页面跳转 动态路由router.push("/study");
}
</script><style scoped></style>
  1. router包-index.js
import {createRouter as _createRouter, createWebHistory} from 'vue-router';
// 导入 凡是想要通过路由跳转的,都需要在这:
// 1.导入
// 2.注册 设置对应vue组件的路径名
import study from '../views/study.vue'
import learn from "../views/learn.vue"const routes = [// 2.注册 设置对应vue组件的路径名{ path: '/study', component: study },{ path: '/learn', component: learn }
]export function createRouter() {return _createRouter({history: createWebHistory(),routes})
}
  1. App.vue
<template><div><!-- 静态路由 to 对应路径 --><router-link to="/study">静态路由</router-link><router-link to="/learn">演示动态路由</router-link></div><div><router-view/></div>
</template><!--js代码 vue3的语法-->
<script setup>
</script><!-- css样式 美化 -->
<style scoped></style>

3.4 Vue-router实现传值

Vue-router在跳转页面的时候,也可以携带数据过去

有2种方式:
第一种:path(路径)+query(查询参数)
传递:router.push({ path: ‘/study’, query: { q1: msg1.value } })

第二种:name(名称)+params(参数)

具体实现:
第一种:path(路径)+query(查询参数)
步骤:
1.views/query.vue
2.router/index.js
3.App.vue
4.views/study.vue 获取

具体步骤:
1.views/query.vue

<template>
<div><h1>通过路径和查询参数进行传递</h1><input v-model="msg1"><button @click="tz1">跳转参数</button>
</div>
</template><script setup>
import {ref} from "vue";
//带r的是用来跳转的
import {useRouter} from "vue-router";
const router=useRouter();
const msg1=ref("");
const tz1=()=>{//路由 跳转页面 传递参数 path+query//path:'/study' 上哪个里面跳, q1 参数名router.push({ path:'/study',query: { q1: msg1.value } });
}
</script><style scoped></style>

2.router/index.js

import {createRouter as _createRouter, createWebHistory} from 'vue-router';
// 导入 凡是想要通过路由跳转的,都需要在这:
// 1.导入
// 2.注册 设置对应vue组件的路径名
import study from '../views/study.vue'
import learn from "../views/learn.vue"
import query from "../views/query.vue";const routes = [// 2.注册 设置对应vue组件的路径名{ path: '/study', component: study },{ path: '/learn', component: learn },{ path: '/query', component: query }
]export function createRouter() {return _createRouter({history: createWebHistory(),routes})
}

在这里插入图片描述

3.App.vue

<template><div><!-- 静态路由 to 对应路径 --><router-link to="/study">静态路由</router-link><router-link to="/learn">演示动态路由</router-link><router-link to="/query">路径传参</router-link></div><div><router-view/></div>
</template><!--js代码 vue3的语法-->
<script setup>
</script><!-- css样式 美化 -->
<style scoped></style>

在这里插入图片描述

4.views/study.vue 获取

<!-- 标签 画中画 -->
<template><div><h1>学习vue3</h1><div><h1>内容:{{ str1 }}</h1><button style="font-size: 30px;color: red" @click="show">查看内容</button><h1>接收路由携带数据</h1><h1>query:{{route.query.q1}}</h1></div></div>
</template><!-- Vue3的写法 setup -->
<script setup>
//导入
import {ref} from "vue";
//取值 用不带r的
import {useRoute} from "vue-router";const route=useRoute();//定义变量
const str1=ref("醒醒...")
const show = () => {alert(str1.value)
}
</script><style scoped></style>

在这里插入图片描述
study.vue 详细 见 静态路由篇
源码项目见:Vue3Study01_XQ/vue02

第二种:name(名称)+params(参数)

步骤:
1.views/params 传数据
2.router/index.js
3.App.vue
4.views/study.vue 按照名称接接收数据

具体实现
1.views/params 传数据

<template>
<div><label>要传的数据:</label><input v-model="msg2"><button @click="tz2">跳转传值通过参数</button>
</div>
</template><script setup>
import {ref} from "vue";
// 传值用带r的useRouter
import {useRouter} from "vue-router";const router=useRouter();const msg2=ref("")const tz2 = () => {router.push({ name: 'study', params: { p1:msg2.value } })
}
</script><style scoped></style>

2.router/index.js

import {createRouter as _createRouter, createWebHistory} from 'vue-router';
// 导入 凡是想要通过路由跳转的,都需要在这:
// 1.导入
// 2.注册 设置对应vue组件的路径名
import study from '../views/study.vue'
import learn from "../views/learn.vue"
import query from "../views/query.vue";
import params from "../views/params.vue"const routes = [// 2.注册 设置对应vue组件的路径名//通过name+params传值的需要,需要再路径后面:参数名{ path: '/study/:p1',name:'study', component: study },{ path: '/learn', component: learn },{ path: '/query', component: query },{ path: '/params',name:'params', component: params }
]export function createRouter() {return _createRouter({history: createWebHistory(),routes})
}

在这里插入图片描述
3.App.vue

<template><div><!-- 静态路由 to 对应路径 --><router-link to="/study">静态路由</router-link>|<router-link to="/learn">演示动态路由</router-link>|<router-link to="/query">路径传参</router-link>|<router-link to="/params">名称传参</router-link>|</div><div><router-view/></div>
</template><!--js代码 vue3的语法-->
<script setup>
</script><!-- css样式 美化 -->
<style scoped></style>

在这里插入图片描述

4.views/study.vue 按照名称接接收数据
在这里插入图片描述

路径传参和名称传参注意点:
加上名称传参之后需要在views/query.vue加上
在这里插入图片描述

<template>
<div><h1>通过路径和查询参数进行传递</h1><input v-model="msg1"><button @click="tz1">跳转参数</button>
</div>
</template><script setup>
import {ref} from "vue";
//带r的是用来跳转的
import {useRouter} from "vue-router";
const router=useRouter();
const msg1=ref("");
const tz1=()=>{//路由 跳转页面 传递参数 path+query//path:'/study' 上哪个里面跳, q1 参数名router.push({ path:'/study/1',query: { q1: msg1.value } });
}
</script><style scoped></style>

还有index.js 注意
在这里插入图片描述

import {createRouter as _createRouter, createWebHistory} from 'vue-router';
// 导入 凡是想要通过路由跳转的,都需要在这:
// 1.导入
// 2.注册 设置对应vue组件的路径名
import study from '../views/study.vue'
import learn from "../views/learn.vue"
import query from "../views/query.vue";
import params from "../views/params.vue"const routes = [// 2.注册 设置对应vue组件的路径名//通过name+params传值的需要,需要再路径后面:参数名{ path: '/study/:p1',name:'study', component: study },{ path: '/learn', component: learn },{ path: '/query', component: query },{ path: '/params',name:'params', component: params }
]export function createRouter() {return _createRouter({history: createWebHistory(),routes})
}

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

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

相关文章

C# CodeFormer Inpainting 人脸填充

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms;namespace CodeFormer_D…

UnitTesting 单元测试

1. 测试分为两种及详细介绍测试书籍: 1.1 Unit Test : 单元测试 - test the business logic in your app : 测试应用中的业务逻辑 1.2 UI Test : 界面测试 - test the UI of your app : 测试应用中的界面 1.3 测试书籍网址:《Testing Swift》 https://www.hackingwithswift.c…

MySQL——六、库表操作(下篇)

MySQL 一、INSERT语句二、REPLACE语句三、UPDATE语句四、delete和TRUNCATE语句五、MySQL用户授权1、密码策略2、用户授权和撤销授权 一、INSERT语句 #在表里面插入数据&#xff1a;默认情况下&#xff0c;一次插入操作只插入一行 方式1&#xff1a; INSERT [INTO] 表名 [(colu…

uni-app小程序使用DCloud(插件市场)流程

一、DCloud&#xff08;插件市场&#xff09; DCloud 是uni-app官方插件市场&#xff0c;里面有官方、团队、个人发布的众多插件&#xff0c;包括uni-ui、uni-pay 等。而像uni-ui这种大型组件库都有官方文档可参考&#xff0c;但一些团队或个人发布的小型插件没有文档&#xf…

垃圾回收器、垃圾回收算法、空间分配担保、JVM调优、GC回收对象的过程

文章目录 &#x1f34a; 垃圾回收器、垃圾回收算法、空间分配担保&#x1f389; Serial&#x1f389; ParNew&#x1f389; Parallel scavenge&#x1f389; 复制算法&#x1f389; 分代收集算法&#x1f389; 进入老年代的几种情况&#x1f4dd; 空间分配担保 &#x1f389; S…

超火的双臂烹饪机器人Project YORI,分分钟成为你的专属大厨!

原创 | 文 BFT机器人 当前行业内有两种通用的烹饪自动化方法&#xff1a;一种是“制造一个可以在普通厨房中运作的烹饪机器人&#xff0c;因为每个人都有厨房”&#xff0c;这听起来很不错&#xff0c;但接下来你就必须使你的烹饪机器人能够在厨房环境中正常运行&#xff0c;这…

docker 复习

文章目录 1. docker 基础1.1 docker 安装配置镜像加速器拉取镜像的仓库&#xff1a; docker 部署Mysql 镜像docker 命令的详细解释docker 常见命令docker 数据卷docker 相关命令总结 2.自定义镜像2.1 dockerfile2.2 try 构建一个Java镜像&#xff0c;并部署2.3 总结: 3. docker…

物流监管:智慧仓储数据可视化监控平台

随着市场竞争加剧和市场需求的不断提高&#xff0c;企业亟需更加高效、智能且可靠的仓储物流管理方式&#xff0c;以提升企业的物流效率&#xff0c;减少其输出成本&#xff0c;有效应对市场上的变化和挑战。 图扑自研 HT for Web 产品搭建的 2D 智慧仓储可视化平台&#xff0c…

Databend 开源周报第 115 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 聚合索引 Data…

[计算机提升] 系统及用户操作

1.4 系统及用户操作 1.4.1 系统操作 1.4.1.1 开机、关机、重启 在Windows系统中&#xff0c;开机&#xff08;Power On&#xff09;&#xff0c;关机&#xff08;Shutdown&#xff09;和重启&#xff08;Restart&#xff09;是指计算机的不同电源控制操作。 开机&#xff1a;…

苹果平板可以用别的电容笔吗?电容笔和Apple pencil区别

和苹果原装的Pencil相比&#xff0c;这种平替的电容笔并没具备重力压感&#xff0c;只有一种倾斜的压感功能。如果你不经常用来作画&#xff0c;一支普通的电容笔就足够了。不管是用来记笔记&#xff0c;还是用来解决一些数学问题&#xff0c;都能用得上。再说了&#xff0c;即…

NAND存储器转储分析 - 使用ECC修复位错误与UBI镜像固件分析

一、 简介 这篇研究论文将通过黑客的视角&#xff0c;详细阐述如何操作 NAND dump 以及如何获取 dump 文件中的所有文件。每一步骤以及所使用的方法均会细致解析&#xff0c;并配以实例说明。本文主要关注的是物理 NAND dump&#xff0c;这是从通用编程器中提取出的 dump 文件…

项目平台——测试报告的实现(七)

这里写目录标题 一、Table表格组件的使用1、Table表格组件中的插槽使用 二、点击查看测试报告&#xff0c;跳转到测试报告详情页实现1、新建Report.vue组件2、配置路由3、查看报告按钮添加事件 三、页面布局1、Layout布局2、卡片设计3、打开页面发送请求加载报告数据4、对接口进…

Java版本+企业电子招投标系统源代码+支持二开+招投标系统+中小型企业采购供应商招投标平台

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部供…

大数据flink篇之三-flink运行环境安装后续一yarn-session安装

前提&#xff1a; Hadoop 必須保证在 2.2 以上&#xff0c;且必須裝有 hdfs 服务。Hadoop安装后续会有相关说明。 具体的&#xff0c;在生产环境中&#xff0c;flink一般会交由yarn、k8s等资源管理平台来处理。本章主要讲解yarn模式下的session cluster模式。 flink Session-C…

Java模拟双向链表,增删操作

public static void main(String[] args) {ArrayList arrayList new ArrayList();Node zhangsan new Node("张三");Node lisi new Node("李四");Node wanger new Node("王二");//模拟双向链表&#xff0c;将表中元素依次连接起来zhangsan.ne…

Windows运维相关经验技巧

常用工具 在线PS Photoshop在线 FAQ 电脑能上网&#xff0c;浏览器上不了网 # 错误原因&#xff1a; 设置了网络代理&#xff0c;浏览器无法通过网络代理上网# 解决办法 关闭网络代理 &#xff08;1&#xff09;wini&#xff0c;打开设置 &#xff08;2&#xff09;网络和I…

【前端学习】—函数防抖(十)

【前端学习】—函数防抖&#xff08;十&#xff09; 一、什么是函数防抖 函数防抖&#xff1a;事件被触发n秒后再执行回调&#xff0c;如果在这n秒内又被触发&#xff0c;则重新计时。 二、代码实现 <script>const searchElement document.getElementById("searc…

多语言跨境商城源码搭建(定制代码+源码开源)

在全球化的背景下&#xff0c;跨境电商发展迅猛&#xff0c;多语言商城成为企业拓展海外市场的首要选择。本文将为大家介绍跨境多语言商城的源码搭建方法&#xff0c;以及相关的定制代码和源码开源信息。 一、什么是跨境多语言商城 跨境多语言商城是一种能够支持多国语言的电子…

站外引流之道:跨境电商如何吸引更多流量?

随着跨境电商行业的蓬勃发展&#xff0c;站外引流成为卖家们必须掌握的关键技能。站外引流不仅有助于扩大产品曝光度&#xff0c;还能吸引更多潜在客户&#xff0c;提高销售额。 然而&#xff0c;站外引流并非易事&#xff0c;需要精心策划和执行。本文将探讨站外引流的策略&a…