react和vue路由传参

182 阅读1分钟

Vue路由传参实例:

this.$router.push({
        name: "approvalDetail",
        query: {
          processInstanceId: row.processInstanceId,
          taskId: row.taskId,
          processDefinitionKey: row.processDefinitionKey,
          type: "1",
        },
        params: row,
    }); 
  • 接收时:this.route.query或者this.route.query或者this.route.query(看你用什么传的参);
  • 在vue中,router表示操作路由跳转、router表示操作路由跳转、route读取和接收路由参数。

React路由传参实例:

  1. params(也叫动态路由传参):直接在link组件里的to属性的路径后面加上参数,直接用斜杠连接。
  •  link方式:<Link to={ ' /sort/ ' + ' 2 ' }  activeClassName='active'>XXXX</Link>;
    
  •  js方式  this.props.history.push(  '/sort/'+'2'  );
    
  •  接收时:this.props.match.params
    
  1. search:也是直接在link组件里的to属性的路径后面加上参数,只不过这个是用?连接。
  •  link方式:<Link to='/home?name=xx'>首页</Link>;
    
  •  接收时:this.props.location.search
    
  1. state传参(state传参是加密的):
  •  link方式:<Link to={{path:'/demo',state:{name:'dahuang'}}}>XX</Link>;
    
  •  js方式:this.props.history.push({pathname:'/demo',state:{name:'dahuang'}});
    
  •  接收时:this.props.location.state.name
    
  1. query传参(query传参是公开的):
  •  link方式:<Link to={{path:'/demo',query:{name:'dahuang'}}}>XX</Link>;
    
  •  js方式:this.props.history.push({pathname:'/demo',query:{name:'dahuang'}});
    
  •  接收时:this.props.location.query.name
    

state 和query传参的区别就是一个是加密的,一个是公开的。

vue中query和params的区别是什么

  1. query用path编写传参地址,而params用name编写传参地址,但实际上两者都可用name;
  2. query刷新页面时参数不会消失,而params刷新页面时参数会消失;
  3. query传的参数会显示在url地址栏中,而params传参不会显示在地址栏中。