IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Web前端开发之VUE15——Vue路由大全、编程式导航、导航守卫 -> 正文阅读

[JavaScript知识库]Web前端开发之VUE15——Vue路由大全、编程式导航、导航守卫

目录

路由:

通过锚链接Hash实现简易前端路由的方法:

?vue-router:?

?vue-router的安装:

?配置和使用vue路由:

?vue-router高级用法:

路由重定向:

?路由高亮:

自定义高亮class类名:

?嵌套路由:

?实现嵌套路由:

嵌套路由的重定向:

动态路由匹配:

?获取动态路由参数值:?

?编程式导航:

?命名路由:

导航守卫:

守卫方法的3个参数:

next函数的使用和3种调用方式:

?结合token控制访问权限:


路由:

?

?

通过锚链接Hash实现简易前端路由的方法:

?

?示例代码:

<template>
  <div>
    <ul>
      <li><a href="#/home">Home</a></li>
      <li><a href="#/img">Img</a></li>
      <li><a href="#/about">About</a></li>
    </ul>
    <component :is="certainTab"></component>
  </div>
</template>

<script>
import Home from "./components/路由/利用components实现页面切换/Home.vue"
import Img from "./components/路由/利用components实现页面切换/Img.vue"
import About from "./components/路由/利用components实现页面切换/About.vue"

export default {
  components: {
    myHome: Home,
    myImg: Img,
    myAbout: About,
  },
  data(){
    return{
      certainTab:'myHome'
    }
  },
  created() {
    window.onhashchange=()=>{
      switch (location.hash){
        case '#/home':{
          this.certainTab='myHome'
          break
        }
        case '#/img':{
          this.certainTab='myImg'
          break
        }
        case '#/about':{
          this.certainTab='myAbout'
          break
        }
      }
    }
  }
}
</script>

?vue-router:?

?

?vue-router的安装:

?

?

完成上面的步骤后会出现错误提示:

由于vue-router是一个外部组件包,所以需要在配置后才可以使用。

?配置和使用vue路由:

?

?示例代码:

//router.js
import {createRouter,createWebHashHistory} from 'vue-router'

import Home from './Home.vue'
import Img from './Img.vue'
import About from './About.vue'

const router= createRouter({
  history:createWebHashHistory(),
  routes:[
    {path:'/home',component:Home},
    {path:'/img',component:Img},
    {path:'/about',component:About},
  ]
})

export default router
//main.js
import router from './components/路由/vue-router的基础实现/router'

//挂载路由模块
app.use(router)

//app.vue
<template>
  <div>
    <ul>
      <li><router-link to="/home">Home</router-link></li>
      <li><router-link to="/img">Img</router-link></li>
      <li><router-link to="/about">About</router-link></li>
    </ul>
    <router-view></router-view>
  </div>
</template>

?vue-router高级用法:

路由重定向:

?路由高亮:

?

?示例代码:

.router-link-active{
  color: red;
  background-color: #cccccc;
}

自定义高亮class类名:

?嵌套路由:

?实现嵌套路由:

?

?注意:子路由路径无需‘/’

嵌套路由的重定向:

原理与普通路由重定向一样。

示例代码:

//子路由的创建
    {
      path: '/about',
      component: About,
      redirect:'/about/Tab1',
      children: [
        {path: 'Tab1', component: Tab1},
      ]
    },

动态路由匹配:

?

?获取动态路由参数值:?

?编程式导航:

?

?

?

?命名路由:

?示例代码:

<router-link :to="{name:'movie',params:{id:1}}">跳转到电影1</router-link>
  <router-link :to="{name:'movie',params:{id:2}}">跳转到电影2</router-link>
  <router-link :to="{name:'movie',params:{id:3}}">跳转到电影3</router-link>
  <router-view></router-view>

?

?示例代码:

    jumpUrl(getMovieId){
      // this.$router.push(`/movie/${getMovieId}`)
      this.$router.push({name:'movie',params: {id:getMovieId}})
    }

同样也是传递一个对象。命名路由多用于路径繁琐、过长的情景下。

导航守卫:

?示例代码:

//声明全局导航守卫
router.beforeEach(()=>{
  console.log('已启用导航守卫')
})

守卫方法的3个参数:

?示例代码:

router.beforeEach(
    (to,
     from,
     next) => {
      console.log(`to:${to}`)
      console.log(`from:${from}`)
      console.log(`next:${next}`)
      console.log('已启用导航守卫')
    })

next函数的使用和3种调用方式:

?

?结合token控制访问权限:

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:27:19  更:2022-04-22 18:30:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:50:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码