Vue 页面传参方式 Query 和 Params

1. query 与 params 传参

  • query

????需要和配合 path 属性使用,携带参数会拼接在请求路径后,效果同 Get 请求方式


http://localhost:8033/Permission/Role/Form?productCode=crm-operate&roleId=1&roleName=admin&roleType=-1&roleDesc=%E7%AE%A1%E7%90%86%E5%91%98
  • params

????需要配合 name 属性使用,参数不会携带在访问路径后,效果同 Post 请求

http://localhost:8033/Permission/Role/Form

2. 代码片演示

????从页面NsTableRole 跳转NsFormRole 页面,添加编辑或删除动作都会携带参数到详情页面。

权限管理下角色管理路由配置route.js

// 一级菜单权限管理
const permissionRouter = {
  path: '/Permission',
  name: 'Permission',
  component: () => import('@/views/Default'),
  redirect: '/Permission/Configuration',
  meta: {
    title: '权限管理',
    requireAuth: true
  },
  // 二级菜单:权限配置, 角色管理, 修改密码
  children: [{
    path: '/Permission/Role',
    name: 'PermissionRole',
    title: '角色管理',
    component: () => import('@/views/Content'),
    redirect: '/Permission/Role/Index',
    children: [{
      path: '/Permission/Role/Index',
      name: 'PermissionRoleIndex',
      component: () => import('@/views/Permission/Role')
    },
    {
      path: '/Permission/Role/Form',
      name: 'PermissionRoleForm',
      title: '角色维护',
      component: () => import('@/views/Permission/Role/NsFormRole')
    }]
  }, {
    path: '/Permission/ModifyPassword',
    name: 'PermissionModifyPassword',
    title: '修改密码',
    component: () => import('@/views/Content'),
    redirect: '/Permission/ModifyPassword/Index',
    children: [{
      path: '/Permission/ModifyPassword/Index',
      name: 'PermissionModifyPasswordIndex',
      title: '修改密码',
      component: () => import('@/views/Permission/ModifyPassword')
    }]
  }]
}
export default permissionRouter

2.1 添加角色动作(query 传参)

????在页面 NsTableRole 点击添加角色,触发添加角色方法 onAddRole() 携带参数访问 path 属性映射的路由,NsFormRole 页面生命周期函数 created 获取路由携带的参数。传参效果如图

NsTableRole.vue(部分)
js methods: { // 添加角色 onAddRole () { this.$router.push({ path: ‘/Permission/Role/Form‘, query: { productCode: this.model.productCode } }) } }
NsFormRole.vue(部分)

  // 生命周期函数 created
  created () {
    console.log(this.$route)
    this.model.productCode = this.$route.query.productCode
  }

2.2 编辑角色动作(params 传参)

????在页面 NsTableRole 点击编辑,触发编辑角色方法 onEditRole() 携带参数访问 name 属性映射的路由,NsFormRole 页面生命周期函数 created 获取路由携带的参数。传参效果如图

NsTableRole.vue(部分)

    // 编辑角色
    onEditRole (obj) {
      this.$router.push({
        name: 'PermissionRoleForm',
        params: {
          roleId: obj.roleId,
          roleName: obj.roleName,
          roleType: obj.roleType,
          roleDesc: obj.roleDesc
        }
      })
    }

NsFormRole.vue(部分)

  name: 'NsFormRole',
  data () {
    return {
      model: {
        roleId: '',
        roleName: '',
        roleType: '',
        roleDesc: '',
        productCode: '',
        roleMenuPermission: []
      }
    }
  },
  created () {
    console.log(this.$route)
    this.model.productCode = this.$route.params.productCode
    this.model.roleId = this.$route.params.roleId
    this.model.roleDesc = this.$route.params.roleDesc
    this.model.roleType = this.$route.params.roleType
    this.model.roleName = this.$route.params.roleName
  },
  methods () {
  }

Power By niaonao, The End, Thanks

原文地址:https://www.cnblogs.com/niaonao/p/12202450.html

时间: 2024-11-29 16:47:57

Vue 页面传参方式 Query 和 Params的相关文章

vue-router路由传参之query和params

首先简单来说明一下$router和$route的区别 //$router : 是路由操作对象,只写对象 //$route : 路由信息对象,只读对象 //操作 路由跳转 this.$router.push({ name:'hello', params:{ name:'word', age:'11' } }) //读取 路由参数接收 this.name = this.$route.params.name; this.age = this.$route.params.age; 1·query传递参数

.net 页面传参方式总结

一.使用Querystring Querystring是一种非常简单的传值方式,其缺点就是:安全性低.会把要传送的值显示在浏览器的地址栏中(也就是不需要保密得参数),并且在此方法中不能够传递对象,参数的长度不能大于 1024字节(?),当参数中有中文得时候,通常需要使用HttpUlitity.UrlEncode方法来对参数进行编码和解码. 优点:速度快.如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了.下面通过一个小例子来完成传值工作,步骤如下:1.创建一个web

Vue 路由传参-使用query方式传递参数

2018-08-15 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="../vue.js"></script> <script src="https://cdn.bootcss.com/vue-r

vue页面传参

1.传的参数是数组 传递参数的页面 let setStr = encodeURIComponent(JSON.stringify(this.tableData)); this.$router.push('/send/setMessageSelf?setStr=' + setStr); 接收参数页面: mounted(){ let setArray = JSON.parse(this.$route.query.setStr); console.log(setArray); }, 解释: 首先是le

vue路由传参query和params路由传参的区别?

相同点:router文件index.js 都是利用name属性. params传递时: params接收时利用this.$route.param进行接受: query路由传参: query接受利用this.$route.query 而展示上params路由传参像Ajax中post传参方式: query路由传参像get传参 原文地址:https://www.cnblogs.com/manban/p/12012567.html

vue路由传参query和params的区别

1.用法 A.query要用path来引入(用name来引入也可以),接收参数都是this.$route.query.name. B.params要用name来引入,接收参数都是this.$route.params.name. 2.效果 A.query类似于ajax中get传参,即在浏览器地址栏中显示参数. B.params则类似于post,即在浏览器地址栏中不显示参数. 3.个人建议 在路由传参上建议使用params,以隐藏参数,做好安全保密.

Vue路由传参的几种方式

原 Vue路由传参的几种方式 2018年07月28日 23:52:40 广积粮缓称王 阅读数 12613 前言:顾名思义,vue路由传参是指嵌套路由时父路由向子路由传递参数,否则操作无效.传参方式可以划分为params传参和query传参,params传参又可以分为url中显示参数和不显示参数两种方式.具体区分和使用后续分析. 参考官网:https://router.vuejs.org/zh/guide/essentials/navigation.html params传参(url中显示参数)

vue路由传参页面刷新参数丢失问题解决方案

最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$router.push({ name:"admin", //这里的params是一个对象,id是属性名,item.id是值(可以从当前组件或者Vue实例上直接取) params:{id:item.id} }) //这个组件对应的路由配置 { //组件路径 path: '/admin', //

vue请求中 post get传参方式是不同的哦

我在学习vue,项目中post请求,get请求都用到了,我发现传参方式是不一样的. post请求的例子: checkin (){ this.$http.post('my url',{ mobilePhone:this.phone, password:this.password },{ emulateJSON: true } ).then(function(res){ this.$root.userid=res.data.userid; console.log(this.$root.userid)