零基础学习Vue: 第38课 Vue单页面使用router-link实现页面跳转小案例:

2023-11-17

零基础学习Vue: 第38课 Vue单页面使用router-link实现页面跳转小案例:

实现效果如下:

在这里插入图片描述

以下是所有代码:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
   <!-- <meta http-equiv="X-UA-Compatible" content="ie=edge"> -->
   <title>Document</title>
   <style>
      * {
         margin: 0;
         padding: 0
      }
      #app {
         position: relative;
         width: 800px;
         height: 500px;
         border: solid;
         margin: 50px auto;
      }
      #app .navlist {
         overflow: hidden;
      }
      a {
         text-decoration: none;
         line-height: 40px;
         height: 40px;
         text-align: center;
      }
      #app .navlist a {
         float: left;
         width: 20%;
         box-shadow: 0 0 10px 0 blue inset;
      }
      #app .about {
         position: absolute;
         left: 0;
         right: 0;
         top: 60px;
         width: 100%;
         margin: auto;
         height: 440px;
         box-shadow: 0 0 10px 0 blue inset
      }
      #app .about ul {
         float: left;
      }
      #app .about li {
         list-style-type: none;
         width: 162px;
         height: 40px;
         margin: 20px 0;
         box-shadow: 0 0 10px 0 blue inset;
      }
      #app .about .heaven {
         float: right;
         width: 600px;
         height: 400px;
         box-shadow: 0 0 10px 0 blue inset
      }
      /* 点击router-link时 该标签会自动增加router-link-active的class名  */
      .router-link-active{
         background-color:rgba(0,0,0,.5)
      }
   </style>
</head>

<body>
   <div id="app">
      <!-- 12.引入子组件 -->
      <navlist></navlist>

      <!-- 13.设置路由跳转显示页面 -->
      <router-view></router-view>
   </div>

   <!-- 3.子组件navlist导航  里面是导航路由 -->
   <template id='navlist'>
      <div class='navlist'>
         <!-- 通过name跳转路由 -->
         <router-link :to="{name:'homelink'}">首页</router-link>
         <router-link :to="{name:'userlink'}">用户中心</router-link>
         <router-link :to="{name:'aboutlink'}">关于我们</router-link>
         <router-link :to="{name:'loginlink'}">登录</router-link>
         <router-link :to="{name:'registerlink'}">注册</router-link>
      </div>
   </template>

   <!-- 7.设置子组件  关于我们 内的路由 -->
   <template id='about'>
      <div class='about'>
         <ul>
            <li>
               <!-- 子组件的路由跳转可以通过name跳转 -->
               <router-link :to="{name:'concatlink'}" >联系我们</router-link>
            </li>
            <li>
               <!-- 子组件的路由跳转也可以通过路径跳转 在about组件下面的parnter组件 -->
               <router-link to="/about/parnter">合作伙伴</router-link>
            </li>
            <li>
               <router-link to="/about/address1">公司地址</router-link>
            </li>
         </ul>
         <!-- 设置跳转路由显示页面 -->
         <router-view class='heaven'></router-view>
      </div>
   </template>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <script src='https://unpkg.com/vue-router/dist/vue-router.js'></script>

   <script>

      //2.设置子组件navlist 子组件中设置路由跳转标签router-link
      let navlist = {
         template: '#navlist'
      }
      //{{{{{{{{{ 以下是 子组件navlist 内的路由 以及关于我们内的子路由
      //5.设置子组件navlist内的子组件
      let home = {
         template: '<div>首页</div>',
      }
      let user = {
         template: '<div>用户中心</div>',
      }

      //[[[[ 以下是 关于我们 内的路由
      //6.设置 关于我们 子主件
      let about = {  //关于我们的路由组件
         template: '#about'
      }
      //8.设置 关于我们 内的子组件
      //下面是 关于我们 下面的3个子组件
      let concat = {
         template: '<div>11010101010101</div>'
      }
      let parnter = {
         template: '<div>玉皇大帝</div>'
      }
      let address1 = {
         template: '<div>花果山水帘洞</div>'
      }
      //]]]] 以上是 关于我们 内的路由

      let login = {
         template: '<div>登录</div>'
      }
      let register = {
         template: '<div>注册</div>'
      }
      //}}}}}}}}} 以上是 子组件navlist 内的路由 以及关于我们内的子路由

      //9.设置所有路由映射表
      let routes = [
         {
            path: '/home',    //设置path
            name: 'homelink', //设置name
            component: home,  //注册子组件
            meta:{   //设置页面title名
               title:'首页'
            }
         },
         {
            path: '/user',
            name: 'userlink',
            component: user,
            meta:{
               title:'用户中心'
            }
         },
         {
            path: '/about',
            name: 'aboutlink',
            component: about,
            //这是 关于我们 里面的子路由,
            children: [
               { path: 'concat', name: 'concatlink', component: concat },
               //配置合作伙伴路由               component: parnter:注册parnter子组件
               { path: 'parnter', name: 'parntertlink', component: parnter },
               { path: 'address1', name: 'addresslink', component: address1 },
            ]
         },
         //登入路由                     component: login:注册login子组件
         {path: '/login',name: 'loginlink',component: login},
         //注册路由                     component: register:注册register子组件
         {path: '/register',name: 'registerlink',component: register},
         //重定向  默认进入home首页页面
         {path:'*',redirect:'/home'}
      ]

      //10.实例化路由对象
      let router = new VueRouter({
         routes,
         //改变clssname
        linkExactActiveClass:'active'	//将点击router-link标签增加的class名变成active
      })

      //1.定义根组件
      let vm = new Vue({
         el: '#app',
         router,  //11.注册所有路由
         components: {  //4.注册子组件
            navlist  //注册 头部导航 子组件  //别的组件以在实例化路由中注册了
         }
      })
   </script>
</body>
</html>

总结:

router-link标签内参数exact的作用:

	<!-- exact添加 点击子路由 父路由class不变 -->
  <router-link :to="{path:'/about'}" exact>关于我们</router-link>

如何更改点击router-link后的className:

	//在实例化路由对象中
    let router = new VueRouter({
        routes,
        //改变clssname
        linkExactActiveClass:'active'	//将点击router-link标签增加的class名变成active
    })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

零基础学习Vue: 第38课 Vue单页面使用router-link实现页面跳转小案例: 的相关文章

随机推荐

  • 二叉树各种函数的实现

    如果你觉得迷茫 那就尽可能选择比较困难的路 目录 前言 一 通过前序遍历创建二叉树 二 二叉树的四种遍历 1 二叉树的前序遍历 2 二叉树的中序遍历 3 二叉树的后序遍历 4 二叉树的层序遍历 三 二叉树的结点个数 四 二叉树的叶子结点的个
  • Linux查看当前目录及子目录大小

    du h max depth 1 var lib docker 查看 var lib docker 目录及该目录直接子目录各文件及文件夹大小 查看效果如下图 改变 max depth 1 中的数值大小就可以指定查看该目录下多少级子目录 例如
  • Oracle---day03

    一 视图 对一个查询结果的封装 视图里面所有的数据都是来自于它查询的那张表 视图里面不存储任何数据 视图的好处 1 能够封装复杂的查询结果 2 屏蔽表中的细节 语法 create or replace view 视图名字 as 查询语句 w
  • 【Python】斐波那契数列之兔子问题

    目录 兔子问题 1 1 问题描述 1 2 问题分析 1 3 解决实现 兔子问题 1 1 问题描述 斐波那契在计算之书中 提出了一个有趣的兔子问题 若一对成年兔子每个月恰好生下一对小兔子 一雌一雄 在年初时只有一对小兔子 在第一个月结束时 他
  • linux No module named yum错误的解决办法

    linux No module named yum错误的解决办法 肯定是yum的版本与当前python的版本不一致造成的 所以修改yum的配置 修改文件 vim usr bin yum 修改头 usr bin python gt usr b
  • STM32擦除Flash失败

    stm32 Flash擦除错误 环境 keil5 stm32f4 rtthread3 15 现象 擦除flash总是失败 经过jlink调试发现PGPERR位总是1 经过一番折腾 在st社区找到答案 链接 https community s
  • Button点击事件绑定中如何传递带参数的方法

    btn onClick AddListener delegate this OnBtnClick true 传递一个有参数的方法用于传递参数 这样点击事件就能接收参数了 using UnityEngine using UnityEngine
  • 华为OD机试真题- 计算误码率-2023年OD统一考试(B卷)

    题目描述 误码率是最常用的数据通信传输质量指标 它可以理解为 在多少位数据中出现一位差错 移动通信网络中的误码率主要是指比特误码率 其计算公式如下 比特误码率 错误比特数 传输总比特数 为了简单 我们使用字符串来标识通信的信息 一个字符错误
  • CSS布局之使用Flex布局画骰子(3点)

    若无基础 请优先阅读学习此文档阮一峰 Flex 布局教程 语法篇 上一篇文章CSS布局之使用Flex布局画骰子 2点 这次画3个点的骰子 大家可以先看图片默写代码 然后与文中代码做校验 来验证自己是否理解了Flex布局 骰子样式 div c
  • 笔试

    给定两个字符串s1和s2 如果s1删除若干个字符后变成s2 则称s2为s1的子串 求s2在s1中的起始位置的最大值 输入描述 只有一行 s1 s2 s1和s2用空格隔开 s1和s2度不会含有空格 s1和s2的长度均大于1且小于256 输出描
  • python实战故障诊断之CWRU数据集(三):信号预白化处理-倒谱预白化(CEP pre-whitening)

    文章目录 1 概述 2 倒频谱预白化原理 2 1 倒频谱 2 2 基于倒频谱的预白化处理 3 代码实现 1 概述 在轴承故障中 故障信号通常较为微弱 很可能被设备周期性运转产生的强周期性信号所淹没 导致无法准确识别故障 这时我们需要用到信号
  • PCL .vtk文件与.pcd的相互转换

    目录 一 概述 二 VTK转PCD 三 PCD转VTK 四 实验数据 一 概述 多边形数据集vtkPolyData由顶点 多顶点 线 折线和三角形地带等单元组成 顶点 线和多边形构成了用来表达0 1和2维几何图形的基本要素的最小集合 vtk
  • KubeSphere中集成ApiSix

    KubeSphere中集成ApiSix 一 Apache APISIX 介绍 Apache APISIX 是一款开源的高性能 动态云原生网关 由深圳支流科技有限公司于 2019 年捐赠给 Apache 基金会 当前已经成为 Apache 基
  • java装饰器模式

    一 装饰器模式定义 1 动态地给一个对象添加一些额外的职责 就增加功能来说 装饰模式相比生成子类更为灵活 Component抽象构件 Component是一个接口或者是抽象类 就是定义我们最核心的对象 也就是最原始的对象 定义一个对象接口可
  • Python运行不了,无法运行Python解决办法(超全面)

    前言 Python是一门广泛使用的编程语言 但在使用过程中 我们可能会遇到无法运行Python的问题 本文将提供一个超全面的解决方案 帮助读者排除常见的Python运行问题 并提供相应的解决办法 帮助Python学习 以下所有学习资料文末免
  • tensorflow安装教程(一般使用国内的清华源进行安装)

    注 安装tensorflow numpy这些源 记得用国内的清华镜像源 国外的源由于网络延迟无法安装 1 国内安装tensorflow的命令 pip install index url https pypi douban com simpl
  • 法拉克机器人自动怎么调_发那科机器人的简单设置你知道吗

    发那科机器人使用后台逻辑时 可以在后台执行只包含对应后台逻辑指令的TP程序 程序从 初到 后被反复执行 该执行不受急停 暂停 报警的影响 设定后台逻辑的步骤非常简单 1 按下MENU键 2 选择SETUP 3 选择BG LOGIC 进入如下
  • 洛谷P5731——蛇形方阵(c++)

    题目描述 给出一个不大于 9 的正整数 n 输出 n n 的蛇形方阵 从左上角填上 1 开始 顺时针方向依次填入数字 如同样例所示 注意每个数字有都会占用 3 个字符 前面使用空格补齐 输入格式 输入一个正整数 n 含义如题所述 输出格式
  • Qt 设置窗口的背景图片

    Qt 设置窗口的背景图片 一 给Qt窗口设置背景图片 mainwindow cpp 设置背景图片 path 图片路径 void MainWindow setBackgroundImage QString path QPixmap pixma
  • 零基础学习Vue: 第38课 Vue单页面使用router-link实现页面跳转小案例:

    零基础学习Vue 第38课 Vue单页面使用router link实现页面跳转小案例 实现效果如下 以下是所有代码