当前位置: 首页 > news >正文

第13篇:Vue Router基础使用

目标:掌握单页面应用(SPA)的路由管理


1. 安装与基本配置
npm install vue-router@4  
 
// router/index.js  
import { createRouter, createWebHistory } from 'vue-router'  

const routes = [  
  { path: '/', component: () => import('@/views/Home.vue') },  
  { path: '/about', component: () => import('@/views/About.vue') }  
]  

const router = createRouter({  
  history: createWebHistory(),  
  routes  
})  

export default router  
 
// main.js  
import { createApp } from 'vue'  
import App from './App.vue'  
import router from './router'  

const app = createApp(App)  
app.use(router)  
app.mount('#app')  
 

2. 路由视图与导航
<!-- App.vue -->  
<template>  
  <!-- 路由导航 -->  
  <nav>  
    <router-link to="/">首页</router-link>  
    <router-link to="/about">关于</router-link>  
  </nav>  

  <!-- 路由出口 -->  
  <router-view></router-view>  
</template>  
 

3. 编程式导航
<script setup>  
import { useRouter } from 'vue-router'  

const router = useRouter()  

// 跳转路径  
const goAbout = () => {  
  router.push('/about')  
}  

// 带参数跳转  
const goUser = (id) => {  
  router.push({  
    path: '/user',  
    query: { userId: id }  
  })  
}  

// 替换当前路由  
router.replace('/login')  

// 前进/后退  
router.go(1)  
router.back()  
</script>  
 

4. 动态路由与参数获取
// 路由配置  
{  
  path: '/user/:id',  
  component: () => import('@/views/User.vue')  
}  
 
<!-- User.vue -->  
<script setup>  
import { useRoute } from 'vue-router'  

const route = useRoute()  
const userId = route.params.id  
const query = route.query  
</script>  
 

5. 导航守卫
// 全局前置守卫  
router.beforeEach((to, from) => {  
  if (to.meta.requiresAuth && !isLoggedIn()) {  
    return '/login'  
  }  
})  

// 路由独享守卫  
{  
  path: '/admin',  
  component: AdminPage,  
  beforeEnter: (to, from) => {  
    // ...  
  }  
}  

// 组件内守卫  
<script setup>  
import { onBeforeRouteLeave } from 'vue-router'  

onBeforeRouteLeave((to, from) => {  
  return confirm('确定离开当前页面吗?')  
})  
</script>  
 

核心要点

  • 使用<router-view>渲染匹配的组件

  • 通过useRouter()获取路由实例,useRoute()获取当前路由信息

  • 动态路由参数通过:param定义,通过route.params获取

  • 导航守卫用于权限控制、数据预加载等场景

相关文章:

  • 旋转位置编码(ROPE)详解:从Transformer到现代前沿
  • 管道-过滤器、隐式调用、解释器架构风格对比
  • Spring——SpringSecurity开发经验实战
  • 给小米/红米手机root(工具基本为官方工具)——KernelSU篇
  • 【Python量化金融实战】-第1章:Python量化金融概述:1.1量化金融的定义与发展历程
  • QListView实现文件选择功能
  • JAVAEE一>Spring IoC和DI详解
  • 2024全国青少年信息素养大赛python复赛真题--装错信封
  • 【自学嵌入式(9)ESP8266网络服务器的使用】
  • spring中关于Bean的复习(IOC和DI)
  • 深度学习(5)-卷积神经网络
  • Qt 是一个跨平台的 C++ 应用程序框架
  • 如何了解和学习“未知的未知”
  • python安装教程,最新版本Python3.12安装教程(附安装包)
  • 计算机组成与接口5
  • 爬虫基础之爬取某基金网站+数据分析
  • 相机标定(张正友标定法)
  • 运放的输入失调电压和输入偏置电流
  • 机器学习数学通关指南——牛顿-莱布尼茨公式
  • Python 数据分析概述 ①
  • 公众号电脑版登陆入口/seo测试
  • 雷神代刷推广网站/seo搜索优化公司排名
  • 专门做优惠劵的网站/河南网站优化公司哪家好
  • 做网站经常加班还是app/网络产品运营与推广
  • 怎么用自己电脑做服务器搭建网站/怎么做盲盒
  • 行业网站渠道选择和内容运营/怎么样才能引流客人进店