路由的高级用法

news2025/1/16 15:51:00

多级路由

                1.新建一个Mian组件

<template>
  <div> 
     <h1>我是Msg的子组件</h1>
  </div>
</template>

<script>
export default {
  name: "Mian",
}
</script>

<style>
</style>

                2.在router中msg小新建一个路由

               


import About from '../pages/About'  
import Message from '../pages/Message' 
import Mian from '../pages/Mian' 
import VueRouter from 'vue-router'


//创建并暴露一个路由器
const VR =  new VueRouter({
    // mode:'history',
    node:"hash",
    routes:[
        {
            name:"guanyu",
            path:'/about',
            component:About,
            meta:{tittle:"生于小满"}
        },
        {
            name:"xinxi",
            path:'/msg',
            component:Message,
            meta:{tittle:"小满为安"},
            children:[
                {
                    name:"zi",
                    path:'mian',
                    component:Mian,
                    meta:{tittle:"演技"}, 
                }
            ]
        }
    ]
})


 

export default VR

                3.在Message组件中调用

<template>
  <div class="d"> 
    <div>
         <h1>我是Msg的内容</h1>
        <router-link to="/msg/mian">跳转mian</router-link> 
    </div>

    <!-- 展示区 -->
   <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: "Message",
}
</script>

 <style scoped>
    .d{
       display: flex;
       flex-direction: column;
       justify-content: space-around;
    }
 </style>

                4.重启项目

路由传参

        1.在router-link中进行传参

         <!-- 字符串 query-->
        <!-- <router-link to="/msg/mian?id=123">跳转mian</router-link>  -->
        <!-- 通过query进行对象传参 -->
          <router-link
           :to="{
           path:'/msg/mian',
           query:{
            id:123
           }
           }" >
           跳转mian
           </router-link> 
          <!-- 通过params进行对象传参 -->
          <router-link
           :to="{
          name:'zi', 
           params:{
            id:321
           }
           }" >
           跳转mian
           </router-link> 

        2.使用route对象接收

        queryid:{{$route.query.id}} <br>
        paramsid:  {{$route.params.id}}

props配置

        1.配置mian路由的props

            children: [
                {
                    name: "zi",
                    path: 'mian',
                    component: Mian,
                    meta: { tittle: "演技" },
                    // props的第一种写法,值为对象,该对象中的所有key-value都会以props的形式传给Detail组件。
                    // props: { a: 1, b: 'hello' },
                    //props的第二种写法,值为布尔值,若布尔值为真,就会把该路由组件收到的所有params参数,以props的形式传给Detail组件。
                    // props:true
                    // props的第三种写法,值为函数
                    props($route) {
                        return {
                            id: $route.query.id,
                            a: 1,
                            b: 'hello'
                        }
                    },
                }
            ]

        2.在Mian组件中调用

 props:['id','a','b']
       id:{{id}}  <br>
       a:{{a}} <br>
        b:{{b}}

       

router-link 的replace属性

        浏览的历史记录有两种写入方式:分别为push(你点击进入到下一个路由的时候可以返回到上一个路由)和replace(你点击进入到下一个路由的时候,浏览器左上角不会有返回上一步),push是追加历史记录,replace是替换当前记录。路由跳转时候默认为push,通过以下方式开启replace模式

<router-link replace to='/about'>News</router-link>

编程式路由导航 

                通过$router的两个方法来实现页面的跳转,push是默认带缓存,replace是覆盖缓存

   <p @click="pbt">跳转mian router</p>
  methods:{
    pbt(){
    this.$router.push(  {
              name:'zi',
              query:{
                id:1,
              }   
      })
}
}

        this.$router.replace(  )   跳转页面,replace,会销毁之前的操作,不会保留

        this.$router.go()   正数向前 负数后退

        this.$router.back()   后退

        this.$router.afterEach()   向前

缓存式路由

        在销毁之前,保存之前用户输入的数据

    <!-- 展示区 -->
          <keep-alive include="['zi']">
            <router-view></router-view>
           </keep-alive>

路由独有的钩子函数

activated() {
  console.log("被激活了")
  this.timer = setTimeout(()=>{
   this.opacity -= 0.01
   if (this.opacity <= 0) this.opacity = 1
  },16)
},
deactivated() {
  consoole.log("快失活了")
  clearInterval(this.timer)
},

        用于关闭定时器但是需要保留数据的时候

路由守卫

        前置路由守卫,用于验证用户身份或者做别的校验,在router中定义
    VR.beforeEach((from,to,next)=>{
    console.log("前置路由守卫")
   
    if(to.meta.isAuth){
        if(localStorage.getItem("school" === 'xb')){
            next()
        }else{
            alert("您无权查看该信息")
        }
    }else{
        next()
    }
})
        后置路由守卫 ,可用于修改html的tittle
    VR.afterEach((from,to)=>{
    console.log('后置路由守卫')
    document.title = to.meta.tittle || '小白系统'
})
        独享路由守卫,只有在某个组件里可以使用
beforeEnter:(from,to,next)=>{}
        组件内路由

        通过路由规则,进入该组件时调用 

  beforeRouteEnter(to, from, next){}

         通过路由规则,离开该组件时候调用 

    beforeRouteLeave (to, from, next) {}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1895272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用运放设计简单有源滤波器(低通、高通、带通)

本文旨在帮助刚接触模电的同学快速设计一个实用可靠的有源滤波器&#xff0c;故我将不会说一些晦涩难懂的原理&#xff0c;只给出仿真电路图。 低通滤波器 图1 低通滤波器 图1所示的是一个截止频率约为1KHz的低通滤波器。 图2 200Hz的情况 图3 2KHz的情况 设计步骤为&#x…

【京存】AI人工智能时代的分布式存储

如今&#xff0c;AI人工智能的浪潮席卷全球&#xff0c;数据以前所未有的速度增长与积累。如何高效存储、管理和利用海量数据&#xff0c;成为推动AI发展的关键。 今日&#xff0c;我们将为您深度剖析AI人工智能分布式存储方案&#xff0c;伴随AI技术在图像识别、自然语言处理…

收购北京1000万投资集团公司要求和收购费用

收购北京投资集团公司执照多少钱&#xff0c;投资集团公司注册代理投资、金融类公司已经全国停止注册&#xff0c;目前唯一还可以注册的就是金武汉南京投资公司&#xff0c;但是政策也是越来越紧、限制越来越多有的地区已经不让核名了&#xff0c;说不好哪天也就停止注册了&…

60种AI工具用法 学会探索AI的无限可能

外面还在卖的课程&#xff0c;学会探索AI的无限可能&#xff0c;从构建精准的提示词到获取个性化新闻&#xff0c;从快速制作PPT到短视频内容的智能提炼&#xff0c;再到编程、股市分析和视频剪辑&#xff0c;AI工具助您工作学习效率飞跃提升&#xff01; 百度网盘 请输入提取…

MATLAB和Python发那科ABB库卡史陶比尔工业机器人模拟示教框架

&#x1f3af;要点 &#x1f3af;模拟工业机器人 | &#x1f3af;可视化机器人DH 参数&#xff0c;机器人三维视图 | &#x1f3af;绘制观察运动时关节坐标位置、速度和加速度 | &#x1f3af;绘制每个关节处的扭矩和力 | &#x1f3af;图形界面示教机器人 | &#x1f3af;工业…

深入编译与体验开源车载Linux操作系统AGL

随着汽车行业的智能化和互联化趋势日益明显&#xff0c;车载系统作为汽车的重要组成部分&#xff0c;其性能和功能也受到了越来越多的关注。Linux作为一款开源的操作系统&#xff0c;具有稳定性高、安全性强、可定制性好等优点&#xff0c;因此成为了车载系统领域的热门选择。 …

内容为王:揭秘顶尖品牌的内容营销制胜法宝

内容营销是当今互联网市场推广领域的热门话题&#xff0c;因为它可以帮助企业更好地与受众沟通、建立品牌口碑&#xff0c;增加销售量。 根据咱们何策网的资源库里的SocialBeta2024年最新《2024 内容营销 10 大趋势》的报告来看&#xff0c;品牌在未来内容营销中最应该注重的是…

2023-2024华为ICT大赛中国区 实践赛昇腾AI赛道 全国总决赛 理论部分真题

Part1 MindSpore模块(7题)&#xff1a; 1、MindSpore深度学习框架的候选运行时支持多种硬件平台&#xff0c;包括CPU、GPU、NPU等。以下关于MindSpore后端的描述中&#xff0c;正确的有哪些项?(多选题) A.MindSpore后端运行时负责将计算图转换为对应硬件平台的执行指令&…

SD NAND时序解析

一、SD NAND时序的重要性 在SD NAND的数据传输过程中&#xff0c;时序起着至关重要的作用。正确的时序确保了数据能够准确无误地在主机和SD NAND之间传输。 二、命令与读写时序 SD NAND的通信基于命令和数据传输&#xff0c;遵循以下时序规则&#xff1a; 命令与响应交互&…

KVB交易平台 :市场迎来新热潮!铜价会持续上涨吗?

近期&#xff0c;全球铜价出现明显上涨趋势。韩国光阳LME仓库的铜库存显著下降&#xff0c;市场对即时需求的增加作出了积极反应。供应端的紧张和需求端的复苏共同推动了铜价的上涨。 KVB外汇 分析师们对未来铜价保持谨慎乐观态度&#xff0c;认为长期内铜价有望保持稳定甚至进…

c++纵横字谜

1.实现一个纵横字谜 2.支持14x14的网格 3.可以查看答案 4.猜测错误会提示答案信息 5.从txt读取词汇 6.每次游戏开始 随机生成纵横字谜 n’h

Appium自动化测试框架3

滑动与拖拽 swipe 滑动时间的长短会影响最后的结果的 是有一定误差的 from appium import webdriver import time # 启动一个字典 包装相应的启动参数 desired_caps dict() # 平台的名字&#xff0c;安卓还是IOS 大小写无所谓 desired_caps[platformName] Android # 平台的…

gin项目部署到服务器并后台启动

文章目录 一、安装go语言环境的方式1.下载go安装包&#xff0c;解压&#xff0c;配置环境变量2.压缩项目上传到服务器并解压3.来到项目的根目录3.开放端口&#xff0c;运行项目 二、打包的方式1.在项目的根目录下输入以下命令2.把打包好的文件上传到服务器3.部署网站4.ssl证书 …

UserWarning: IPython History requires SQLite, your history will not be saved

UserWarning: IPython History requires SQLite, your history will not be saved 很久未打开pycharm&#xff0c;控制台出现爆红 解决方法&#xff1a; 重启pycharm&#xff0c;就好啦&#xff01;&#xff01;&#xff01;我猜测可能是上次pycharm没有关闭就电脑关机&…

2024亚洲国际餐饮展览会(北京餐饮展|火锅展|预制菜展会)

2024北京餐饮展会&#xff0c;2024北京食材展会&#xff0c;2024北京火锅展会&#xff0c;2024北京火锅食材展会&#xff0c;2024北京预制菜展会&#xff0c;2024北京预制食材展会&#xff0c; 2024亚洲国际餐饮展览会&#xff08;北京餐饮展|火锅展|预制菜展会&#xff09; …

【pytorch13】激活函数及梯度

什么是激活函数 计算机科学家借鉴生物的神经元机制发明了计算机上的模型&#xff0c;这个模型与生物的神经元非常类似 激活的意思就是z变量要大于0&#xff0c;这一个节点才会激活&#xff0c;否则就会处于睡眠状态不会输出电平值 该激活函数在z0处不可导&#xff0c;因此不能…

[k8s生产系列]:k8s集群故障恢复,etcd数据不一致,kubernetes集群异常

文章目录 摘要1 背景说明2 故障排查2.1 查询docker与kubelet状态2.2 查看kubelet服务日志2.3 重启docker与kubelet服务2.3.1 首先kubelet启动起来了&#xff0c;但是报错master节点找不到2.3.2 查询kubernetes集群服务&#xff0c;发现etcd与kube-apiserver均启动异常 2.4 etcd…

Aavegotchi的Gotchiverse新地图: 沉睡的野兽即将苏醒!

Gotchi 守护者们&#xff0c;准备好了&#xff0c;因为我们要大开杀戒了&#xff01; 加入我们吧&#xff08;后果自负&#xff01;&#xff09;&#xff0c;我们将深入Gotchiverse&#xff0c;前往奥姆夫山--我们虚拟世界中所有 FOMO 的炽热源头。 请继续阅读&#xff0c;了解…

vue中的坑·

常规 1.使用watch时&#xff0c;immediate true会在dom挂载前执行 2.使用this.$attrs和props 可以获取上层非原生属性&#xff08;class/id&#xff09; 多层次嵌套引用 设置的时候直接赋值&#xff0c;修改的时候即使用的双向绑定加上$set / nextick / fouceUpdate都不会同步…

关于Ubuntu系统中.config文件夹如何找到

Ubuntu中QT项目使用了setting保存配置&#xff0c;但是找不到配置文件保存了在哪里&#xff0c;找了一下&#xff1a; 因为QT里取的名字是&#xff1a; 于是下载everything搜索Nio&#xff0c;发现目录为/home/nio/.config 虽然已经下载了everything找到了&#xff0c;但是发现…