vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue路由实现页面参数传递

Vue通过路由实现页面间参数的传递

作者:Tango糖果π

这篇文章主要介绍了Vue通过路由实现页面间参数的传递,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在Vue项目开发中,页面之间传递参数有很多种方法

1.路由传递

// params单个参数传递
// 设置参数 catid
this.$router.push({
    name: '/article/category', 
    params: {catid: '10'} 
})
// 获取参数 catid
this.$route.params.catid
 
// 多个参数传递
// 设置参数 catid
this.$router.push({
    name: '/article/category', 
    params: { 
        catid: '10', 
        pcatid: '1', 
        user: {
            username: 'admin', 
            password: '1234556'
        } 
})
// 获取参数 catid
this.$route.params.catid
this.$route.params.pcatid
this.$route.params.user.username
this.$route.params.user.password
this.$router.push({
    path: '/article/category', 
    params: {catid: '10'} 
})
// 获取参数 catid
this.$route.params.catid
// query多个参数传递
// 设置参数 catid
this.$router.push({
    path: '/article/category', 
    query: { 
        catid: '10', 
        pcatid: '1', 
        user: {
            username: 'admin', 
            password: '1234556'
        } 
})
// 获取参数 catid
this.$route.query.catid
this.$route.query.pcatid
this.$route.query.user.username
this.$route.query.user.password

2.sessionStorage/localStorage缓存的形式进行传递

// 设置catid参数
window.localStorage.setItem('catid','10')
// 获取catid参数
window.localStorage.getItem('catid')
 
// 设置catid参数
window.sessionStorage.setItem('catid','10')
// 获取catid参数
window.sessionStorage.getItem('catid')

注:

sessionStorage(会话存储):生命周期是在仅在当前会话下有效。及只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。 

localStorage(本地存储):生命周期是永久的,关闭页面或浏览器之后localStorage中的数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。不可跨浏览器共用。

3.父子组件之间的传值

 4.使用vuex进行传值

export default new Vuex.Store({
  state: {
	  appkey: '',
	  infokey: ''
  },
  mutations: {
	  setAppkey(state,appkey){
		  state.appkey = appkey;
	  },
	  setInfokey(state,infokey){
		  state.infokey = infokey;
	  }
  },
  actions: {},
  modules: {}
});

其中 state 中为需要传递的值,mutation中为监控值变化并修改值的方法,通过store.commit()方法来触发状态变更以及store.state来获取状态对象。

store.commit("setAppkey",response.data.HttpData.data.appkey);
store.commit("setInfokey",response.data.HttpData.data.infokey);
console.log(store.state.appkey,store.state.infokey);

这里我们介绍通过路由实现页面间参数的传递

通过路由传递参数有两个缺点:

1.参数直接暴露,安全性不高;

2.参数过长时,影响地址栏美观。

但是路由传递参数这种方便比较直观,用起来也方便,可以直接把链接地址放到a标签的href中,也可以作为函数进行封装,实现页面跳转和参数传递。

路由传参的格式是: 

// 传参
this.$router.push({
    name:'home',
    params: {
        message: "",
        data: {}
    }
})
// 或
this.$router.push({
    path:'/home',
    query: {
        message: "",
        data: {}
    }
})
// 接参
this.$route.params.message
this.$route.query.message

注意:

query和params的区别:

实例1:直接在元素中添加跳转地址和参数

第一步:在router里面的index.js文件中设置category路由路径和参数

第二步:在header.vue里,可以使用a的href直接添加跳转地址和参数

 第三步:在category.vue中接收参数

实例2:通过路由函数实现页面跳转和params参数传递

第一步:在router里面的index.js文件中设置category路由路径和参数

第二步: 在header.vue里,通过@click方法实现push函数调用

 第三步:methods中编写push调用函数

 

 第四步:在category.vue中接收参数

实例3:通过路由函数实现页面跳转和query参数传递

第一步:在router里面的index.js文件中设置category路由路径,但不设置参数

 第二步: 在header.vue里,通过@click方法实现push函数调用

 第三步:methods中编写push调用函数

 第四步:在category.vue中接收参数

到此这篇关于Vue通过路由实现页面间参数的传递的文章就介绍到这了,更多相关vue路由实现页面参数传递内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文