vue之router-link页面跳转及传参

文章目录

  • vue之router-link页面跳转及传参
    • 根据路由的路径跳转及传参(query)
    • 根据路由的名称跳转及传参(params)
    • 根据store传参

vue之router-link页面跳转及传参

<router-link> 是用于在 Vue.js 应用程序中进行路由导航的组件。它可以用来生成具有正确链接的<a> 标签,让用户点击后能够导航到其他页面。

要在使用 <router-link> 进行页面跳转时传递参数,你可以使用 to 属性和路由对象的 queryparams 属性来实现。下面是一些示例代码:

根据路由的路径跳转及传参(query)

路由路径

{
    path: '/destination',	//路由路径
    component: () => import('@/views/destination'), //页面位置
    hidden: true	//默认隐藏
}

传递参数

<template>
  <div>
    <!-- 在 to 属性中使用对象形式传递参数 -->
    <router-link :to="{ path: '/destination', query: { id: 123, name: 'example' } }">
      Go to Destination
    </router-link>
  </div>
</template>

上面的示例中,/destination 是目标路由的路径,query 属性被用来传递参数。点击链接后,URL 将类似于 /destination?id=123&name=example。

接收参数

<template>
  <div>
    <p>ID: {{ $route.query.id }}</p>
    <p>Name: {{ $route.query.name }}</p>
  </div>
</template>

<script>
export default {
  mounted() {
    console.log(this.$route.query.id); // 访问 query 中的参数
    console.log(this.$route.query.name);
  }
};
</script>

根据路由的名称跳转及传参(params)

路由路径

{
    path: '/destination',	//路由路径
    name: 'destination',	//路由名称
    component: () => import('@/views/destination'), //页面位置
    hidden: true	//默认隐藏
}

传递参数

<template>
  <div>
    <!-- 在 to 属性中使用对象形式传递参数 -->
    <router-link :to="{ name: 'destination', params: { id: 123, name: 'example' } }">
      Go to Destination
    </router-link>
  </div>
</template>

这个示例中,使用了路由的名称 destination,并通过 params 属性传递了参数。注意,这种方式需要在路由配置中定义了对应名称的路由,并且参数会被作为 URL 的一部分,如 /destination/123/example。

接收参数

<template>
  <div>
    <p>ID: {{ $route.params.id }}</p>
    <p>Name: {{ $route.params.name }}</p>
  </div>
</template>

<script>
export default {
  mounted() {
    console.log(this.$route.params.id); // 访问 params 中的参数
    console.log(this.$route.params.name);
  }
};
</script>

根据store传参

根据store传参就是页面跳转的时候将参数放入store中
在vue中,store用于管理状态共享数据以及在各个组件之间管理外部状态,store是vuex应用的核心,也就是一个容器,包含着应用中大部分的状态,更改store中的状态唯一方法是提交mutation。关于具体使用方法可参考若依前后端分离中的前端代码(照葫芦画瓢)。

若依前后端分离:https://gitee.com/y_project/RuoYi-Vue
在这里插入图片描述
路由路径

{
    path: '/destination',	//路由路径
    component: () => import('@/views/destination'), //页面位置
    hidden: true	//默认隐藏
}

传递参数

<template>
  <div>
    <!-- 在 to 属性中使用路由路径跳转 -->
    <router-link :to="'/destination'">
      <span @click="setDestinationParams">Go to Destination</span>
    </router-link>
  </div>
</template>

<script>
export default {
  methods: { 
    setDestinationParams() {
      var params = { id: 123, name: 'example' }
      this.$store.dispatch("destination/setDestination", params);
    },
  }
};
</script>

参数放入store中
编写destination.js放在src/store/modules中

const state = {
  params: {}
}
const mutations = {
  //放入参数
  SET_DESTINATION: (state, params) => {
      state.params=params
  },
  //清楚参数中的某个属性值
  REMOVE_DESTINATION: (state, key) => {
    delete state.params[key];
  },
  //清除参数
  CLEAN_DESTINATION: (state) => {
    state.params = {}
  }
}
//调用方法
const actions = {
  // 设置临时数据
  setDestination({ commit }, data) {
    commit('SET_DESTINATION', data)
  },
  // 删除临时数据的属性
  removeDestination({ commit }, key) {
    commit('REMOVE_DESTINATION', key)
  },
  // 清空临时数据
  cleanDestination({ commit }) {
    commit('CLEAN_DESTINATION')
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

为了方便调用,将参数引入getters.js

const getters = {
  ......
  destination: state => state.destination.params,
  ......
}
export default getters

将getters.js放入index.js

import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import destination from './modules/destination'

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    destination
  },
  getters
})

export default store

接收参数

<template>
  <div>
    <p>ID: {{ id }}</p>
    <p>Name: {{ name }}</p>
  </div>
</template>

<script>
export default {
  data() {
  	return {
		id:null,
		name:"",
    }
  },
  mounted() {
    console.log(this.$store.getters.destination.id); 
    console.log(this.$store.getters.destination.name);
    this.id=this.$store.getters.destination.id;
    this.name=this.$store.getters.destination.name;
  },

  //离开此页面时触发(刷新页面或者进入其他页面,若是不想清除,注释此方法即可)
  beforeRouteLeave(to, from, next) {
    //页面切换时清除临时跳转参数
    this.$store.dispatch("destination/cleanDestination");
    next();

    // 这里需要elementui的支持,如果使用其他界面组件自行替换即可
    // this.$confirm("正在离开本页面,本页面内所有未保存数据都会丢失", "警告", {
    //   confirmButtonText: "确定",
    //   cancelButtonText: "取消",
    //   type: "warning",
    // })
    //   .then(() => {
    //     // 正常跳转
    //     next();
    //   })
    //   .catch(() => {
    //     // 如果取消跳转地址栏会变化,这时保持地址栏不变
    //     window.history.go(1);
    //   });
  },
};
</script>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

我的应用我做主:扩展线程池

自定义线程创建&#xff1a;ThreadFactory 线程池中的线程是从哪里来的呢&#xff1f; ThreadPoolExecutor(int corePoolSize,//指定了线程池种的线程数量 int maximumPoolSize,//指定了线程池中的最大线程数量。 long keepAliveTime,// 当线程池数量超过了corePoolSize&#x…

【电路笔记】-串联电容器

串联电容器 文章目录 串联电容器1、概述2、示例13、示例34、总结 当电容器以菊花链方式连接在一条线上时&#xff0c;它们就串联在一起。 1、概述 对于串联电容器&#xff0c;流过电容器的充电电流 ( i C i_C iC​ ) 对于所有电容器来说都是相同的&#xff0c;因为它只有一条…

在x64上构建智能家居(home assistant)(二)(新版Debain12)连接Postgresql数据库

新版数据库安装基本和旧版相同,大部分可以参考旧版本在x64上构建智能家居(home assistant)&#xff08;二&#xff09;连接Postgresql数据库_homeassist 数据库-CSDN博客 新版本的home assistant系统安装,我在原来写的手顺上直接修改了,需要的可以查看在x64上构建智能家居(home…

心有暖阳,笃定前行,2024考研加油

2024考研学子&#xff0c;所有的付出终有收获&#xff0c;阳光终将穿透阴霾&#xff0c;终将上岸。 当曙光破晓的时候&#xff0c;你可曾记得那些星月为伴&#xff0c;孤独为友&#xff0c;理想为灯来指引前行之路的日子&#xff0c;那些默默扎根的日子终将化作星星在未来闪闪发…

java.lang.IllegalStateException: Duplicate key

序言 最近监控扫描出我们项目的某些异常信息&#xff0c;报错java.lang.IllegalStateException: Duplicate key xxx&#xff0c;看到异常来自stream流&#xff0c;然后定位看了一下是某位同事的代码使用stream流把List转Map集合出现重复的key异常信息。List集合A对象来源于某个…

01-黑马程序员大数据开发

一. Hadoop概述 1. 什么是大数据 &#xfeff;狭义上&#xff1a;对海量数据进行处理的软件技术体系&#xfeff;广义上&#xff1a;数字化、信息化时代的基础支撑&#xff0c;以数据为生活赋 2. 大数据的核心工作&#xff1a; &#xfeff;存储&#xff1a;妥善保存海量待…

Http---HTTP 请求报文

1. HTTP 请求报文介绍 HTTP最常见的请求报文有两种: GET 方式的请求报文POST 方式的请求报文 说明: GET: 获取web服务器数据POST: 向web服务器提交数据 2. HTTP GET 请求报文分析 HTTP GET 请求报文效果图: GET 请求报文说明: ---- 请求行 ---- GET / HTTP/1.1 # GET请…

Qt WebAssembly开发环境配置

目录 前言1、下载Emscripten SDK2、 安装3、环境变量配置4、QtCreator配置5、运行示例程序总结 前言 本文主要介绍 Qt WebAssembly 开发环境的配置。Qt for Webassembly 可以使Qt应用程序在Web上运行。WebAssembly&#xff08;简称Wasm&#xff09;是一种能够在虚拟机中执行的…

内存管理学习

内存管理 在计算系统中&#xff0c;通常存储空间分为两种&#xff1a;内部存储空间和外部存储空间。 内部存储空间通常访问速度比较快&#xff0c;能够按照变量地址随机访问&#xff0c;也就是我们通常所说的RAM&#xff08;随机存储器&#xff09;&#xff0c;可以把它理解为…

【原理图PCB专题】原理图图纸锁定/解锁与PCB文件加密方式

在工作中我们会遇到需要冻结原理图进行评审和加密图纸防止被他人盗用的需求。那么在OrCAD Capture中如何对图纸进行锁定与解锁,如何在Allegro中对PCB工程进行加密呢? 原理图锁定与解锁 打开原理图,在图纸中单击右键,选择lock/unlock就可以进行锁定与解锁。 锁定时图纸图…

PostGIS学习教程十四:更多的空间连接

PostGIS学习教程十四&#xff1a;更多的空间连接 在上一节中&#xff0c;我们看到了ST_Centroid(geometry)和ST_Union([geometry])函数&#xff0c;以及一些简单的示例。在本节中&#xff0c;我们将用它们做一些更详细的事情。 提示&#xff1a;写完文章后&#xff0c;目录可以…

OCC:第一个程序,对话框中显示一个BOX

1. OCC库的获取 从github上获取 gitgithub.com:tpaviot/oce.git&#xff0c;自己编译官网获取二进制包&#xff08;获取下来的只有release 版本的&#xff0c;而且VS版本不一定适合自己&#xff09;官网源码&#xff0c;然后自己编译&#xff08;稍微折腾点&#xff0c;建议按…

带大家做一个,易上手的家常辣椒炒肉

先拿一块猪肉泡水解冻 然后 拿四个螺丝椒 螺丝椒切片 放入四个干辣椒 猪肉切片 三瓣左右蒜 如下图大小的一块姜 姜蒜切小块 将辣椒单独倒入锅中 翻炒出辣味 闻到辣味后将辣椒捞出 这里千万不要洗锅不然就把辣味洗掉了 直接起锅烧油 下入肉片翻炒 猪肉变色后 下入姜蒜…

UG阵列面、阵列集合特征和阵列特征的区别

阵列面 对面进行阵列&#xff0c;当实体中被切除特征的时候可以使用阵列面&#xff0c;当这个命令去阵列一个实体的时候&#xff0c;阵列的是一个片体&#xff0c;优点是速度快&#xff0c;缺点是功能较简单&#xff1b; 阵列几何特征 对实体进行阵列&#xff0c;可以一次性选…

Linux 一键部署二进制Gitea

gitea 前言 Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs 分支而来…

数据结构 | 东北大学厦门大学期末试卷查漏补缺

Prim变型算法&#xff08;不会&#xff09; 有人给出求解最小生成树的另外一种算法&#xff1a;将连通图中的边按其权值从大到小顺序逐个删除直至不可再删&#xff0c;删除要遵循的原则是&#xff1a;保证在删除该边后各个顶点之间应该是连通的。请问该算法是正确的吗&#xf…

ElasticSearch 的基础概念与入门使用

ElasticSearch 的基础概念与入门使用 前言 elasticsearch 是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大的功能&#xff0c;可以帮助我们从海量的数据中快速找到需要的内容。 例如&#xff1a; 在 Github 中搜索代码 在电商网站搜索商品 在 Google 搜索答案 …

过采样技术基本原理

本文介绍过采样技术基本原理。 过采样技术在ADC信号采集过程中使用还是比较多的。某些使用场景下&#xff0c;对采样速度要求并不是那么高&#xff08;或ADC采样速度过剩&#xff09;&#xff0c;但是想要获取较高的分辨率&#xff0c;就会用到这种技术&#xff0c;如针对温度…

设计模式:循序渐进走入工厂模式

文章目录 前言一、引入二、简单工厂模式1.实现2.优缺点3.扩展 三、工厂方法模式1.实现2.优缺点 四、抽象工厂模式1.实现2.优缺点3.使用场景 五、模式扩展六、JDK源码解析总结 前言 软件设计模式之工厂模式。 一、引入 需求&#xff1a;设计一个咖啡店点餐系统。 设计一个咖啡类…

在MongoDB中使用数组字段和子文档字段进行索引

本文主要介绍在MongoDB使用数组字段和子文档字段进行索引。 目录 MongoDB的高级索引一、索引数组字段二、索引子文档字段 MongoDB的高级索引 MongoDB是一个面向文档的NoSQL数据库&#xff0c;它提供了丰富的索引功能来加快查询性能。除了常规的单字段索引之外&#xff0c;Mong…