首页 > 其他分享 >VueRouter笔记 - 路由参数(query/params/props/meta)

VueRouter笔记 - 路由参数(query/params/props/meta)

时间:2022-11-11 20:11:50浏览次数:72  
标签:route meta 参数 VueRouter props query id

路由参数

目录

1. query

  • query可以用于在不同路由之间传递数据(大多数是父传子)

  • 一般网页在跳转时显示的链接,?后面就是query,数据与数据之间用&链接,举例:

    <router-link to="/home/message/detail?id=001&title=hello">消息</router-link>
    

    这一行链接传递了id: '001',和title: 'hello'两个参数,它们都被储存在当前页面route的query对象中。根据这点,再使用对象+绑定就可以写出传递动态参数的链接:

    <router-link :to="{
    	path:'/home/message/detail',
        query:{
        	id:m.id,
            title:m.title
        }
    }">消息</router-link>
    

    使用模板字符串也可以,但是无论是可读性和操作性都不太行

    <router-link :to="`/user/message/detail?id=${m.id}&title=${m.title}`">消息</router-link>
    
  • 传递之后调用

    <template>
      <div>
    	序号:{{ $route.query.id }}
    	标题:{{ $route.query.title }}
      </div>
    </template>
    

2. params参数

  • params和query类似,也可以用于传参,但是传递的方式和接受方法略有不同

  • 一般网页在跳转时显示的链接,query会直接接在/后面,并且数据之间也是由/连接,这可能导致误解,需要注意

    <router-link to="/home/message/detail/001/hello">消息</router-link>
    

    可以看到链接中并没有显示接受参数的变量,因为这些变量需要在路由中通过占位符:[变量名]提前确定

    const routes = [
      {
        path: '/user',
        component: User,
        children: [
          {
    		name: 'userNews'
            path: 'news/:id/:title',
            component: News,
          },
        ],
      },
    ]
    
  • 动态传递参数的方法和query差不多

    <!--注意:如果对象中带有params,那么路径部分只能使用name,不能使用path!!!!!-->
    <router-link :to="{
    	name:'detail',
        params:{
        	id:m.id,
            title:m.title
        }
    }">消息</router-link>
    

    当然用模板字符串也可以

    <router-link :to="`/user/message/detail/${m.id}/${m.title}`">消息</router-link>
    

3. props参数

  • 在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性。简单来说,就是要把诸如$route.params.id 的表达式转化成 id 这样简明的表达式

    (实际上props并不算好用,实际使用的频率也不高,稍作了解即可)

  • props通常在router中配置,并且需要配合query或params,这样传递过去的参数就不需要依赖$router

    props有三种模式:布尔模式、对象模式、函数模式。这里只介绍函数模式,因为其适用于绝大多数情况

    //配合query使用
    const router = new VueRouter({
      routes: [
        {
          path: '/search',
          component: SearchUser,
          props(route){
              return{
                  id:route.query.id,
                  title:route.query.title
              }
          }
        }
      ]
    })
    

    调用

    <template>
      <div>
    	序号:{{ id }}
    	标题:{{ title }}
      </div>
    </template>
    
    <script>
    	export default{
            name:'Detail',
            props:['id','title']
        }
    </script>
    

4. meta参数

  • query和params需要等待其他组件在调用时传递参数,但有时需要路由本身就自己携带一些参数,此时就可以使用meta参数

    //该页面的route中将带有isAuth:false这个meta参数
    const routes = [
      {
        path: '/user',
        component: User,
        meta:{isAuth:false}
      },
    ]
    

    调用

    if($route.meta.isAuth === true){...}
    

标签:route,meta,参数,VueRouter,props,query,id
From: https://www.cnblogs.com/Solitary-Rhyme/p/16881618.html

相关文章

  • 乘用车-DRAM-Meta元宇宙-数据融合分析
    乘用车-DRAM-Meta元宇宙-数据融合分析参考文献链接https://mp.weixin.qq.com/s/XP0C_mc__iFZREyPSzFnHwhttps://mp.weixin.qq.com/s/iXjlL6BHUEBmrRf7y3BtFghttps://mp......
  • 问题:父组件mounted发送异步请求,子组件props接收?
    极有可能是因为,父组件mounted异步的请求,在子组件中被v-for控制,所以导致了,父组件mounted会先执行 父组件mounted中发送一个异步请求,然后发送给子组件子组件通过props接收......
  • React高级特性之Render Props
    renderprop是一个技术概念。它指的是使用值为function类型的prop来实现Reactcomponent之间的代码共享。如果一个组件有一个render属性,并且这个render属性的值为一个返......
  • Transfer-Meta Framework for Cross-domain Recommendation to Cold-Start Users阅读
    动机本文是2021年SIGIR上的一篇论文。本文主要针对的是冷启动问题中的跨域推荐问题,目前常用的方法是EMCDR,但是这个方法很大局限性,它仅在重叠的用户上学习,这样学到的模型会......
  • vue3-组合式api-参数(props,context)及父子组件传值
    一、父组件<template> <div>  <h2>我是父组件</h2>  <div>counter:{{counter}}</div>  <button@click="callChildFun">调用子组件方法</button> ......
  • metada知识
    metada知识 MTKMetadataConfiguration(1)Camera_metadataIntroduction(2)LoadingStaticmetadata(1)加载sensor&3A相关的staticmetadataimpBuildStaticI......
  • SDTM IG -- Metadata
    1.没必要描述空数据集2.metadata包含四个部分2.1 datasetmetadata   datasetname,datasetdescription,datasetclass,datasetstructure,datasetpurp......
  • 学习笔记-Metasploit
    Metasploit注:笔记中拓扑图xmind源文件在其图片目录下免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与......
  • 深度讲解React Props
    一、props的介绍当React遇到的元素是用户自定义的组件,它会将JSX属性作为单个对象传递给该组件,这个对象称之为“props”。函数声明的组件,会接受一个props形参,获取属性传递......
  • Model的 _meta方法
    model.UserInfo._meta.app_label            #获取该类所在app的app名称model.UserInfo._meta.model_name#获取该类对应表名(字符串类型)mod......