Vue 頁面傳參方式 Query 和 Params

1. query 與 params 傳參

  • query

    須要和配合 path 屬性使用,攜帶參數會拼接在請求路徑後,效果同 Get 請求方式vue

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 請求java

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(部分)ui

methods: {
   // 添加角色
   onAddRole () {
     this.$router.push({
       path: '/Permission/Role/Form',
       query: {
         productCode: this.model.productCode
       }
     })
   }
 }

NsFormRole.vue(部分)this

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

2.2 編輯角色動做(params 傳參)

    在頁面 NsTableRole 點擊編輯,觸發編輯角色方法 onEditRole() 攜帶參數訪問 name 屬性映射的路由,NsFormRole 頁面生命週期函數 created 獲取路由攜帶的參數。傳參效果如圖

NsTableRole.vue(部分)spa

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

NsFormRole.vue(部分)3d

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
相關文章
相關標籤/搜索