vue路由的安装和使用

news2025/2/25 5:34:36

@TOCVue 路由 vue-router

1 安装vue-router

npm i vue-router -s

2 创建路由模块

创建路由模块

// src/router/index.js就是当前项目的路由模块
// 1 导入Vue 和VueRouter的包
import Vue from 'vue'
import VueRouter from 'vue-router'
// 导入路由要用到的组件
import Home from '../components/Home.vue'
import Movie from '../components/Movie.vue'
import About from '../components/About.vue'
 
// 2 调用vue.use()函数,把VueRouter安装为vue插件
Vue.use(VueRouter)

// 3 创建路由的实例对象
const router = new VueRouter({
  // 定义数组routes[],对应哈希地址与组件之间的关系
  routes: [
  //路由规则
    { path: '/home', component: Home },
    { path: '/movie', component: Movie },
   {
      path: '/about',
      component: About,
      // about组件里的嵌套路由
      children: [
        { path: 'tab1', component: Tab1 },
        { path: 'tab2', component: Tab2 }
      ]
    },
    // 路由重定向:强制跳转
    { path: '/', redirect: '/home' }
  ]
})

// 4 向外共享路由的实例对象
export default router

3 在main.js导入路由模块

// 1 导入路由模块,拿到路由实例
import router from '../src/router/index.js'
new Vue({
  render: h => h(App),
  
  //  2 挂载路由
  router: router
}).$mount('#app')

4 在App.vue中使用router-view占位符

<template>
  <div class="app-container">
    <h1>App2 组件</h1>
    //使用router-link替代a链接
   // <a href="#/home">首页</a>
   // <a href="#/movie">电影</a>
  //  <a href="#/about">关于</a>


    <hr />
    <router-view ></router-view>
  </div>
</template>

5 动态路由

5.1 定义:把hash地址可变的部分定义为参数项,提高路由规则的可复用性

5.2 在vue-router中使用英文的冒号定义参数项:id

在这里插入图片描述

5.3 在组件中使用$route.prams.id进行调用

//Movie组件
<template>
  <div class="movie-container">
    <h3>Movie 组件---{{$route.params.id}}</h3>
    <hr>
    <button @click="showThis">打印this</button>
      </div>
</template>

注意1:在hash地址中,/后面的参数叫做“路径参数”

在路由“参数对象”$route中,需要使用$route.prams来访问路径参数 

注意2 在hash地址中,“?”后面的参数叫做“查询参数”

在路由“参数对象”中, 需要使用$route.query来访问查询参数

注意3 在hash地址中,path只是路径部分,fullPath才是完整路径

例如
" /movie/1?name=%27as%27 " 是fullPath
" /movie/1" 是path

6 声明式导航VS编程式导航

6.1 声明式导航:通过a链接或router-link点击的跳转

6.2 编程式导航:通过location.href的跳转

6.3 vue-router提供的编程式导航API

6.3.1 跳转到指定hash地址,并增加一条历史记录

this.$router.push(‘hash地址’)

6.3.2 跳转到指定hash地址,并替换掉当前的历史记录

this.$router.replace(‘hash地址’)

6.3.3 在浏览历史中前进后退

this.$router.go(数值n)
在实际操作中一般只前进或者后退一层,vue-router简化:

6.3.3.1前进

this.$router.forward()

6.3.3.2 后退

this.$router.back()

7 导航守卫

7.1 导航守卫可以控制路由的访问权限

7.2 全局前置守卫:每次发生路由的导航跳转时,都会触发全局前置守卫,可以对每个路由进行访问权限的控制

在这里插入图片描述

7.2.1 全局前置导航守卫回调函数的3个形参

在这里插入图片描述

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

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

相关文章

【TypeScript介绍】一文带你初步了解TypeScript

前言 博主主页&#x1f449;&#x1f3fb;蜡笔雏田学代码 专栏链接&#x1f449;&#x1f3fb;【TypeScript专栏】 今天开始学习学习TypeScript这门语言&#xff01; 感兴趣的小伙伴一起来看看吧~&#x1f91e; 文章目录TypeScript介绍1. TypeScript是什么2. TypeScript为什么要…

大文件上传

大文件上传原理 当我们在做文件上传的功能时&#xff0c;如果上传的文件过大&#xff0c;可能会导致长传时间特别长&#xff0c;且上传失败后需要整个文件全部重新上传。因此&#xff0c;我们需要前后端配合来解决这个问题。 最常用的解决方案就是 —— 切片上传。 这次我们…

图文详解uni-app PC端宽屏适配方案

图文详解uni-app PC端宽屏适配方案 随着互联网的发展&#xff0c;iOS、Android、H5以及各种小程序快应用层出不穷&#xff0c;随之而来的问题就是如何用一套代码&#xff0c;适配多个平台&#xff0c;其中uni-app表现优异&#xff0c;已经实现了手机端全覆盖&#xff0c;支持i…

【JavaScript速成之路】JavaScript对象

&#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f525;系列专栏&#xff1a;【JavaScript速成之路】 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; 文章目录前言1&#xff0c;初识对象1.1&#xff0c;对象概念1.2&#xff0c;对象创建1.2.…

手撕前端面试题【JavaScript】

前端的那些基本标签&#x1f353;&#x1f353; 浅拷贝&#x1f353;&#x1f353;简易深拷贝&#x1f353;&#x1f353;深拷贝&#x1f353;&#x1f353;什么是深拷贝&#xff0c;什么是浅拷贝&#xff0c;二者有什么区别&#xff0c;平时改怎么区分呢&#xff1f;&#x1f…

vue3.0本地引入vue.js

第一步获取vue版本 Vue的各种版本介绍&#xff1a; cjs&#xff08;两个版本都是完整版&#xff0c;包含编译器&#xff09; vue.cjs.js vue.cjs.prod.js&#xff08;开发版&#xff0c;代码进行了压缩&#xff09; global&#xff08;这四个版本都可以在浏览器中直接通过…

Vue中 provide、inject 详解及使用

传送门&#xff1a;Vue中 子组件向父组件传值 及 .sync 修饰符 详解 传送门&#xff1a;Vue中 状态管理器&#xff08;vuex&#xff09;详解及应用场景 传送门&#xff1a;Vue中 $ attrs、$ listeners 详解及使用 传送门&#xff1a;Vue中 事件总线&#xff08;eventBus&#x…

New Bing申请与使用教程

&#xff08;1&#xff09;安装 Edge 浏览器插件&#xff1a; 由于在 CN 访问 Bing 国际版会自动跳转到 CN 版&#xff0c;因此需要先重定向浏览器的 Header&#xff0c;先在 Edge 浏览器安装插件&#xff1a;Header Editor&#xff1a; 添加如下配置&#xff08;其中&#xf…

① 尚品汇的后台管理系统【尚硅谷】【Vue】

后台管理系统项目简介 什么是后台管理系统项目&#xff1f; 在前端领域当中&#xff0c;开发后台管理系统项目&#xff0c;并非是Java&#xff0c;PHP等后台语言项目 在前面课程当中&#xff0c;我们已经开发了一个项目【尚品汇电商平台项目】&#xff0c;这个项目主要针对的是…

HTML5+CSS3模拟实现《亮剑》平安县城一役精彩微信群聊-谁开的炮?

转眼从2005年到现在&#xff0c;《亮剑》已经播出多年&#xff0c;但热度依然不减&#xff0c;而且每次重温我都会看出不一样的意蕴&#xff0c;今天&#xff0c;我就用HTML5CSS3模拟实现《亮剑》平安县城一役精彩微信群聊-谁开的炮&#xff1f; 目录 1. 实现思路 2. 素材介绍…

零基础JavaScript学习【第四期】

博主有话说:不知不觉这一已经第四期了,感谢大家的支持。 个人空间:GUIDM的个人空间 专栏内容:零基础JavaScript学习 基础还是关键。 欢迎大家的一键三连。 往期回顾: 前情回顾:第一期https://blog.csdn.net/m0_61901625/article/details/124772807?spm=1001.2014.3001.…

Spring-Security实现登录接口

目录简介原理初探实现思路登录接口实现准备工作编码实现效果展示简介 Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 具体介绍和入门看springSecurity入门 原理初探 在实…

CSS 实现六边形柱状图

前言 &#x1f44f;CSS 实现六边形柱状图 速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 定义全局css变量&#xff0c;柱状宽度为–w&#xff0c;最大高度为–h&#xff0c;柱形整体为渐变色&#xff0c;定义上部分颜色为…

VUE-webpack超详细教程

一.认识webpack 官网解释&#xff1a;从本质上来讲&#xff0c;webpack是一个现代的JavaScript应用的静态模块打包工具。 从模块化和打包两个角度来理解&#xff1a; 模块化&#xff1a; webpack其中一个核心就是让我们可能进行模块化开发&#xff0c;并且会帮助我们处理模块…

【uni-app导入vant】

uni-app导入vant一、为什么要写这篇文章二、 安装vant三、 进行全局导入Vant组件四、 导入Vant全局公共样式五、 在页面中使用Vant组件一、为什么要写这篇文章 相信有很多人在进行小程序转为uni-app的时候都会遇到转换后vant组件不能用的问题&#xff0c;为了解决这个问题本人…

前端开发:颜色代码速查表【英文颜色、HEX(十六进制)格式、RGB格式、十进制】

&#x1f48c; 作者简介 &#x1f4d6; 个人介绍&#xff1a;小伙伴们&#xff0c;大家好&#xff01;我是水香木鱼&#xff0c;【前端领域创作者】&#x1f61c;&#x1f4dc; CSDN主页&#xff1a;水香木鱼&#x1f4d1; 个人博客&#xff1a;陈春波&#x1f3a8; 系列专栏&…

Uniapp零基础开发学习笔记(4) -顶部导航栏titleNView的制作

Uniapp零基础开发学习笔记(4) -顶部导航栏titleNView的制作 制作顶部导航栏titleNView的过程。 1.官网上关于顶部导航栏的介绍 https://uniapp.dcloud.net.cn/collocation/pages.html#app-titlenview 其中关于顶部导航栏的介绍中&#xff0c;有如下的说明&#xff1a; 前端…

一学就会的Vue slot插槽,真的不看看吗?(使用脚手架)

目录 一、前言 完整内容请关注&#xff1a; 开始前的准备&#xff1a; 二、slot插槽的基本使用 子组件&#xff1a; 父组件&#xff1a; 展示效果&#xff1a; 三、域名插槽的基本使用 子组件: 父组件: 效果展示: 注意&#xff1a; 四、如何通过slot从子组件获取内…

实测有效防止colab自动断开连接

在Firefox和Chrome中&#xff0c;在colab页面&#xff0c;按CtrlShiti&#xff0c;打开检查页面&#xff08;也可以右击鼠标&#xff0c;选择“检查”&#xff09;&#xff0c;并切换到控制台或terminal标签&#xff0c;chrome中为Console。 如果你是联想电脑&#xff0c;可以…

vue项目中使用mapbox地图,切换底图

如何在vue项目中加载并使用mapbox mapbox用了感觉确实不错&#xff0c;操作很顺滑&#xff0c;矢量切片体验流畅&#xff0c;地图主题定制化地图漂亮&#xff0c;二三维一体化&#xff0c;二三维切换很是简单&#xff0c;一行代码搞定。 基本使用 这是mapbox官方文档地址&am…