Vue与React路由组件传参

简介: Vue与React路由组件传参

一、Vue

1、params参数

路由链接(携带参数):
1、字符串写法

<router-link :to="/home/message/detail/tom/18">跳转</router-link>

2、对象写法

  <router-link 
   :to="{
     name:'xiangqing',
     params:{
      name:tom,
      age:'18'
     }
   }"
  \>跳转</router-link>

注意:不能使用path配置项,必须使用name配置!

​注册路由(声明接收):

{
    name:'xiangqing',
    path:'detail/:name/:age', //使用占位符声明接收params参数
    component:Detail
}

​接收参数:

this.$route.params

2、query参数

路由链接(携带参数):
1、字符串写法

<router-link :to="/home/message/detail?name=tom&age=18">跳转</router-link>

2、对象写法

  <router-link 
   :to="{
     path:'/detail',
     query:{
      name:'tom',
      age:18
     }
   }"
  \>跳转</router-link>

​注册路由(无需声明,正常注册即可):

{
    name:'xiangqing',
    path:'/detail', 
    component:Detail
}

​接收参数:

this.$route.query

二、React

1、params参数

路由链接(携带参数):

<Link to='/demo/test/tom/18'}>详情</Link>

​注册路由(声明接收):

<Route path="/demo/test/:name/:age" component={Test}/>

​接收参数:

this.props.match.params

2、search参数

​路由链接(携带参数):

<Link to='/demo/test?name=tom&age=18'}>详情</Link>

注册路由(无需声明,正常注册即可):

<Route path="/demo/test" component={Test}/>

​接收参数:

this.props.location.search

​备注:获取到的search是urlencoded编码字符串?name="tom"&age=18,需要借助querystring解析

import qs from 'querystring'
const {name,age} = qs.parse(search.slice(1))

3、state参数

​ 路由链接(携带参数):

<Link to={{pathname:'/demo/test',state:{name:'tom',age:18}}}>详情</Link>

​注册路由(无需声明,正常注册即可):

<Route path="/demo/test" component={Test}/>

​接收参数:

this.props.location.state

备注:刷新也可以保留住参数

相关文章
|
10月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
777 2
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
1236 0
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
1509 4
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
移动开发 前端开发 JavaScript
Vue与React两大前端框架的主要差异点
以上就是Vue和React的主要差异点,希望对你有所帮助。在选择使用哪一个框架时,需要根据项目的具体需求和团队的技术栈来决定。
739 83
|
12月前
|
JavaScript 前端开发 API
对比Vue框架与React库的主要区别
在选择Vue还是React时,考虑项目的需求、团队的熟悉程度和个人偏好至关重要。如果项目需要快速原型开发和较小的学习曲线,Vue可能是更好的选择。相反,如果项目需要更大的灵活性,或者项目团队已经有React的经验,那么React可能是更合适的选择。
513 13
|
缓存 JavaScript UED
Vue3中v-model在处理自定义组件双向数据绑定时有哪些注意事项?
在使用`v-model`处理自定义组件双向数据绑定时,要仔细考虑各种因素,确保数据的准确传递和更新,同时提供良好的用户体验和代码可维护性。通过合理的设计和注意事项的遵循,能够更好地发挥`v-model`的优势,实现高效的双向数据绑定效果。
732 161
|
JavaScript
在 Vue 3 中,如何使用 v-model 来处理自定义组件的双向数据绑定?
需要注意的是,在实际开发中,根据具体的业务需求和组件设计,可能需要对上述步骤进行适当的调整和优化,以确保双向数据绑定的正确性和稳定性。同时,深入理解 Vue 3 的响应式机制和组件通信原理,将有助于更好地运用 `v-model` 实现自定义组件的双向数据绑定。
1282 159
|
存储 缓存 JavaScript
如何优化React或Vue应用的性能
需要注意的是,性能优化是一个持续的过程,需要根据具体的应用场景和性能问题进行针对性的优化。同时,不同的项目和团队可能有不同的优化重点和方法,要结合实际情况灵活运用这些优化策略,以达到最佳的性能效果。
787 158