2026年Vue页面路由参数的传递和获取方式

Vue页面路由参数的传递和获取方式div id navCategory div 有如下几种 1 动态路由参数 它隐藏字段信息 相对于来说较安全 同时地址栏中的地址也相对较短 它必须是先定义后使用 一般用于根据固定参数 返回对应的数据所用 2 query 字符串 id 1 通过 search 字符串的方式来在地址栏中传递数据 相对于来说地址栏会暴露字段信息安全性较低

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 
  
    
     

有如下几种:

1.动态路由参数

  • 它隐藏字段信息,相对于来说较安全,同时地址栏中的地址也相对较短
  • 它必须是先定义后使用,一般用于根据固定参数,返回对应的数据所用

2.query字符串 ?id=1

  • 通过search字符串的方式来在地址栏中传递数据,相对于来说地址栏会暴露字段信息安全性较低,
  • 一般用于搜索相关,它可以不定义就可以直接用

3.props 隐式传递

  • 隐式传递,它一般用于敏感数据的传递,可以不用

4.cookie/storage来完成对于页面传参

描述:

  • 当我们确定了某一个页面需要根据唯一标识来获取详情的时候,我们一般使用动态路由传递参数。
  • 要注意,通过这种方式传递数据,动态路由必须先定义后使用,并且获取数据时需要唯一标识。

使用:

news.js(这个文件是从 index.js 文件中抽取拆分出来的,最终要被引入到 insex.js 文件中):

import News from '@/views/News' import Detail from '@/views/Detail' const routes = [ { path: '/news', component: News, }, { // 通过动态路由参数来完成页面数据的传递 path: '/news/:id', component: Detail, }, ] export default routes 

index.js:

import Vue from 'vue' import VueRouter from 'vue-router' import news from './routes/news' // 以插件的方式添加 Vue.use(VueRouter) // 实例化路由对象及配置路由表 const routes = [...news] const router = new VueRouter({ // 路由模式 mode: 'history', // 路由规则表 routes }) export default router 

new.json(虚拟新闻 mooc 数据):

[ { "id": 1000, "title": "新闻1" }, { "id": 2000, "title": "新闻2" }, { "id": 3000, "title": "新闻3" } ] 

new.vue(新闻页):

 
  
    
       

detail.vue(新闻详情页):

 
  
    
       

new.vue(新闻页):

 
  
    
       

detail.vue(新闻详情页):

 
  
    
       

news.js:

import News from '@/views/News' import Detail from '@/views/Detail' const routes = [ { path: '/news', component: News, }, { // 通过动态路由参数来完成页面数据的传递 path: '/news/:id', component: Detail, // 写法1:回调函数写法,可以书写业务逻辑 // router它就是一个路由对象 props: router => { let title = router.params.id == '1000' ? '爆炸新闻' : '一般新闻' return { state: 2000, title } }, // 写法2:这是一种没什么用的写法,没有业务逻辑 // props: { title: '1', state: 2 } } ] export default routes 

new.vue(新闻页):

 
  
    
       

detail.vue(新闻详情页):

 
  
    
       

这种传递方式,可以敏感字段从地址栏中隐藏,不会暴露数据,而且回调函数的写法可以书写业务逻辑。

这种方式可以做数据埋点(也叫用户指纹),即隐蔽地收集用户数据。用户每次跳转页面都会触发 props 隐式传递,从而做到用户数据的收集。收集到数据后,通过python、大数据等技术,为用户建模,生成人物画像,由此可以进行大数据推荐。

除了上面两种写法以外,还有第三种写法

news.js:

import News from '@/views/News' import Detail from '@/views/Detail' const routes = [ { path: '/news', component: News, }, { // 通过动态路由参数来完成页面数据的传递 path: '/news/:id', component: Detail, // 写法3:布尔类型 // 布尔类型,一但使用,params动态路由参数传的数据,可以通过props来获取 // 设置为布尔类型,可以简化,动态路由参数的数据获取 props: true, } ] export default routes 

detail.vue(新闻详情页):

 
  
    
       

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

小讯
上一篇 2026-03-28 10:38
下一篇 2026-03-28 10:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/250158.html