<vue 路由 6、动态路由-方法传递参数>
一、query效果

点击query按钮

二、param效果

点击param按钮


注意点
1:重新刷新浏览器后,参数都不在了。
2:url中能看不到传递的参数
3、分别用{{$route. params.name}}和方法的方式获取传递过来的参数并展现。
三、代码结构
注:主要是标红的几个文件

四、代码
index.js
//引入路由
import {
createRouter,
createWebHistory
} from 'vue-router'
import Home from '../views/Home.vue' //定义路由
const routes = [{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
component: () => import('../views/About.vue')
},
{
path: '/query',
name: 'Query',
component: () => import('../views/Query.vue')
},
{
path: '/params',
name: 'Params',
component: () => import('../views/Params.vue')
}
] //创建路由
const router = createRouter({
//createWebHashHistory hash模式路径前面会多一个#号
history: createWebHistory(process.env.BASE_URL),
routes
}) //返回了路由
export default router
App.vue
<template>
<div id="nav">
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link> |
<button @click="queryMethod"> query按钮 </button>
<button @click="paramsMethod"> param按钮 </button> </div>
<router-view></router-view>
</template> <script>
import { defineComponent, ref } from 'vue'
import { useRouter } from 'vue-router'
export default defineComponent({
name: 'App',
setup() {
//setup组件创建的过程
let router = useRouter()
let name = ref('jack')
let num = ref(10)
let obj = ref({
msg: 'start'
}) let queryMethod = () => {
//push如果是传的对象的形式 就可以传递参数
//query 传参
//push里面还可以传入name, name是路由名字index.js里定义的
//query传参path和name都可以 传递参数 参数在地址栏里 刷新后参数还在
router.push({
//path : '/query',
name: 'Query',
query: {
//前面的name可以随便取
name: name.value,
num: num.value,
obj: JSON.stringify(obj)
}
})
} let paramsMethod = () => {
//push如果是传的对象的形式 就可以传递参数
//params 传参
//push里面还可以传入name, name是路由名字index.js里定义的
//params传参只能用name 参数不会在地址栏里 刷新后参数会消失
router.push({
name: 'Params',
params: {
//前面的name可以随便取
name: name.value,
num: num.value,
obj: JSON.stringify(obj)
}
})
}
return {
queryMethod,
paramsMethod
}
}
})
</script>
Home.vue
<template>
<div class="home">
<p>Home Page</p>
<img alt="Vue logo" src="../assets/logo.png">
</div>
</template> <script>
</script>
About.vue
<template>
<div class="about">
<h1>about page</h1>
</div> </template>
Query.vue
<template>
<div class="about">
<h1>Query page</h1>
<div> {{$route.query.name}} </div>
<div> {{$route.query.num}}</div>
<div> {{$route.query.obj}}</div>
<div>
<p>-------如下是方法里获得的参数---------</p>
</div>
<div> {{name}} </div>
<div> {{num}} </div>
<div> {{obj}}</div> </div>
</template> <script>
//编写js内容 import {defineComponent,ref} from 'vue'
import {useRouter,useRoute} from 'vue-router'
export default defineComponent({
name: 'Query',
components: { },
setup() {
//router 是全局路由对象
let router = useRouter()
//route是当前路由对象
let route = useRoute()
console.log(route.query.name)
console.log(route.query.num)
console.log(route.query.obj) let name = route.query.name
let num = route.query.num
let obj = route.query.obj return {
name,
num,
obj }
}
})
</script>
Params.vue
<template>
<div class="about">
<h1>Params page</h1> <div> {{$route.params.name}} </div>
<div> {{$route.params.num}}</div>
<div> {{$route.params.obj}}</div>
<div>
<p>-------如下是方法里获得的参数---------</p>
</div>
<div> {{name}} </div>
<div> {{num}} </div>
<div> {{obj}}</div> </div> </template> <script>
//编写js内容 import {defineComponent,ref} from 'vue'
import {useRouter,useRoute} from 'vue-router'
export default defineComponent({
name: 'Query',
components: { },
setup() {
//router 是全局路由对象
let router = useRouter()
//route是当前路由对象
let route = useRoute()
console.log(route.params.name)
console.log(route.params.num)
console.log(route.params.obj) let name = route.params.name
let num = route.params.num
let obj = route.params.obj return {
name,
num,
obj }
}
})
</script>
<vue 路由 6、动态路由-方法传递参数>的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- 光学测量 PPG
参考来源:ADI官网技术文章.知乎(hxl695822705.KingPo-张超.深圳加1健康科技 ) 现状 PPG测量心率.血氧的技术距今发展快100年,影响心率.血氧测量准确度的因素主要有心率传感 ...
- VCS用法
1.时钟频率点击,鼠标左键点击波形上升沿,中间滚轮点击,然后选择hz,就显示当前信号时钟频率. 2.窗口乱掉,找不到文件列表,右下角点击弹出选择instance. 3.bus地址查找,选择信号,然后蓝 ...
- hszxoj 货车运输 [lca]
题目链接: hszxoj 货车运输 题目描述与思路 简化题目: 求 \(x\)到 \(y\) 两点间路径的边权最小值的最大值 与之前的最短路最大的不同是这道题是多源最短路,那么 \(spfa\) 就废 ...
- 【C++】【图像处理】形态学处理(腐蚀、膨胀)算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)
1 void erosion(BYTE* image, int w, int h, BYTE* outImg) 2 { 3 int rept; 4 //腐蚀 5 memcpy(outImg, imag ...
- OpenFeign:Spring Cloud声明式服务调用组件
OpenFeign:Spring Cloud声明式服务调用组件 问题总结 OpenFeign? Feign VS OpenFeign? OpenFeign实现远程服务调用? OpenFeign超时控制 ...
- 多项式(Poly)笔记
开头先扔板子:多项式板子们 定义 多项式(polynomial)是形如 \(P(x) = \sum \limits_{i = 0}^{n} a_i x ^ i\) 的代数表达式.其中 \(x\) 是一 ...
- 如何延长window11更新信息?
前言 日常使用电脑的时候,我们总是会遇到一个很常见的问题:如何关闭windows自动更新. 解决方法一: 暂停更新 解决方法二: 打开注册表: 运行 => regedit 进入: HKEY_LO ...
- vue遮罩层
<template> <div class="hello"> <button @click="toggleModal">打开 ...
- Boost程序库完全开发指南:1.2-C++基础知识点梳理
主要整理了N多年前(2010年)学习C++的时候开始总结的知识点,好长时间不写C++代码了,现在LLM量化和推理需要重新学习C++编程,看来出来混迟早要还的. 1.const_cast <n ...
- 诸多老牌数据仓库厂商当前,Snowflake如何创近12年最大IPO金额
摘要:在数据仓库/分析领域,有传统厂商Oracle,Teradata,开源软件Hadoop,云厂商AWS Redshift,Google Bigquery,Snowflake成功的技术原因是什么? 1 ...