当前位置:   article > 正文

路由router.push传参实现数据接收_router.push 带参数

router.push 带参数

实现一个系统的新增编辑按钮,如果是通过ruoter.push实现跳转到其它组件的功能,那么在新增和编辑的时候会传递数据,到下一个页面会进行接收数据,在获取该数据渲染即可

1.效果图

新增:

编辑:

可见当点击新增按钮时传递的type值为add,点击编辑按钮时传递的type值为edit ,因此点击编辑会通过router.push传参接收数据并且渲染数据

2.实现代码

新增按钮组件页面

  1. //注册
  2. const goToRegister = () => {
  3. router.push({name:'register', params: { type: 'add' } })
  4. }
  5. //编辑
  6. const toRegister = async(record) => {
  7. const Data = await getSourceApiDetail(record)
  8. const allData = {...Data.data.data,id:record.id}
  9. console.log(allData,'>>>>00000<<<<');
  10. const {
  11. id,
  12. apiName,
  13. apiDirectoryId,
  14. apiSource,
  15. apiAgrement,
  16. apiPort,
  17. apiPath,
  18. apiRequest,
  19. apiTimeout,
  20. apiDescription,
  21. apiInputInfoDTOList,
  22. apiRequestBodyDTOList,
  23. apiResponseInfoDTOList
  24. } = allData
  25. console.log(allData.apiInputInfoDTOList, '5550000000555')
  26. router.push({
  27. name: 'register' ,
  28. params: {
  29. type: 'edit',
  30. id,
  31. apiName,
  32. apiDirectoryId,
  33. apiSource,
  34. apiAgrement,
  35. apiPort,
  36. apiPath,
  37. apiRequest,
  38. apiTimeout,
  39. apiDescription,
  40. apiInputInfoDTOList: JSON.stringify(apiInputInfoDTOList),
  41. apiRequestBodyDTOList: JSON.stringify(apiRequestBodyDTOList),
  42. apiResponseInfoDTOList: JSON.stringify(apiResponseInfoDTOList),
  43. }
  44. })
  45. }

跳转页面

  1. const { type,id,
  2. apiName ='',
  3. apiDirectoryId =[],
  4. apiSource ='',
  5. apiAgrement ='',
  6. apiPort ='',
  7. apiPath ='',
  8. apiRequest ='',
  9. apiTimeout ='',
  10. apiDescription ='',
  11. apiInputInfoDTOList = '',
  12. apiRequestBodyDTOList = '',
  13. apiResponseInfoDTOList = ''
  14. } = route.params
  15. console.log(route.params,'>>....>>>');
  16. // 表单验证
  17. const formState = ref({
  18. apiName: '',
  19. apiDirectoryId: [],
  20. apiSource: '',
  21. apiAgrement: '',
  22. apiPort: '',
  23. apiPath: '',
  24. apiRequest: '',
  25. apiTimeout: '',
  26. apiDescription: ''
  27. })
  28. onMounted(() => {
  29. // 从路由状态中获取数据
  30. const type = route.params.type;
  31. if (type === 'goback') {
  32. formState.value = Object.assign({}, route.params);
  33. } else if(type === 'edit'){
  34. formState.value = Object.assign({}, route.params);
  35. }
  36. });

注意:参数以及绑定的数据源等信息根据实际修改!!!

在我的代码中我点击新增编辑之后到下一个页面之后还有跳转到下一个页面,也是通过该方法传递数据实现接收,第二个页面我通过onMounted函数来接收,然后我再根据我传递的type类型来实现具体的新增修改逻辑

这是最后一个页面的接收数据,仅参考

  1. onMounted(() => {
  2. if (type === 'add') {
  3. formData.value = route.params
  4. console.log(route.params,'......');
  5. } else if(type === 'edit'){
  6. dataSourceOne.value = JSON.parse(route.params.apiInputInfoDTOList)
  7. dataSourceNext.value = JSON.parse(route.params.apiRequestBodyDTOList)
  8. dataSourceThird.value = JSON.parse(route.params.apiResponseInfoDTOList)
  9. testDetails.value = JSON.parse(route.params.apiRequestBodyDTOList)
  10. testDetailsNext.value = JSON.parse(route.params.apiInputInfoDTOList)
  11. }
  12. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/976060
推荐阅读
相关标签
  

闽ICP备14008679号