• vue Router路由


    编程式导航 | Vue Router

    看官方文档

    vue Router

    Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。功能包括:

    • 嵌套路由映射
    • 动态路由选择
    • 模块化、基于组件的路由配置
    • 路由参数、查询、通配符
    • 展示由 Vue.js 的过渡系统提供的过渡效果
    • 细致的导航控制
    • 自动激活 CSS 类的链接
    • HTML5 history 模式或 hash 模式
    • 可定制的滚动行为
    • URL 的正确编码

    1.安装路由组件

    建立项目时  npm init vue app   cnpm install vue-router@4 --save

    2.编写路由脚本

    在项目的src/router/index.js 或者 index.ts

    1. import {createRouter, createWebHashHistory} from 'vue-router'
    2. import Home from '../views/Home.vue'
    3. const routes = [
    4. {
    5. path: '/about',
    6. component: () => import('../views/About.vue')
    7. }, {
    8. path: '/home',
    9. component: Home,
    10. }, {
    11. path: '/',
    12. redirect: '/home'
    13. }, {
    14. path: '/login',
    15. component: () => import('../views/Login.vue')
    16. }, {
    17. path: '/user',
    18. component: () => import('../views/User.vue'),
    19. redirect: '/user/manager',
    20. children: [
    21. {path: 'add', component: () => import('../views/UserAdd.vue')},
    22. {path: 'show', component: () => import('../views/UserShow.vue')},
    23. {path: 'manager', component: () => import('../views/UserManager.vue')},
    24. ]
    25. }
    26. ]
    27. const router = createRouter({
    28. history: createWebHashHistory(),
    29. routes,
    30. })
    31. export default router

    App.vue

    User.vue

    3.入口main.js导入使用

    在src/main.js入口文件中

    1. import { createApp } from 'vue'
    2. import { createPinia } from 'pinia'
    3. import App from './App.vue'
    4. import router from './router'
    5. import './assets/main.css'
    6. const app = createApp(App)
    7. app.use(createPinia())
    8. app.use(router)
    9. app.mount('#app')

    route 重定向redirect

    404

    嵌套路由,子路由

    在Goods.vue组件中,声明router-link 和 子路由视口rounter-view

    1. Wechat:webrxwp - Mobile:13014577033 - Email:webrx@126.com - QQ:7031633

    a

    1. {
    2. path: '/goods',
    3. component: () => import('../views/Goods.vue'),
    4. //默认进入子路由manager
    5. redirect: '/goods/manager',
    6. children: [
    7. {path: 'show', component: () => import('../views/GoodsShow.vue')},
    8. {path: 'add', component: () => import('../views/GoodsAdd.vue')},
    9. {path: 'manager', component: () => import('../views/GoodsManager.vue')},
    10. ]
    11. }

    编程式导航

    原来的路由导航方式为声明式导航,编程式导航,是通过路由组件对象的api编程方式,直接路由访问。 router.push(url) router.go(-1) router.back()

    1. <script lang="ts" setup>
    2. import {useRouter} from 'vue-router'
    3. const router = useRouter()
    4. const goa = id => {
    5. router.push(`/about/${id}`)
    6. }
    7. const goback = n =>{
    8. router.go(n)
    9. }
    10. script>
    11. <style scoped>
    12. style>
    13. // 字符串路径
    14. router.push('/users/eduardo')
    15. // 带有路径的对象
    16. router.push({ path: '/users/eduardo' })
    17. // 命名的路由,并加上参数,让路由建立 url
    18. router.push({ name: 'user', params: { username: 'eduardo' } })
    19. // 带查询参数,结果是 /register?plan=private
    20. router.push({ path: '/register', query: { plan: 'private' } })
    21. // 带 hash,结果是 /about#team
    22. router.push({ path: '/about', hash: '#team' })

    命名路由

    定义路由 name:'about 命名

    1. , {
    2. path: '/about/:id(\\d+)',
    3. name: 'about',
    4. component: () => import('../views/About.vue'),
    5. props: true
    6. }

    使用声明式导航

    "{name:'about',params:{id:10}}">about/10
    

    编程式导航

    1. // 命名的路由,并加上参数,让路由建立 url
    2. router.push({ name: 'about', params:{ id: 10 }})

    路由守卫

    全局导航守卫会拦截每个路由规则,从而对每个路由访问权限的控制

  • 相关阅读:
    Linux内核中的锁
    物理学专业英语(词汇整理)--------07
    csp初赛总结 & 那些年编程走过的坑 & 初高中信竞常考语法算法点
    【迅搜01】安装运行并测试XunSearch
    酷开科技,让酷开系统成为现代生活的变革者
    【Java基础(应用篇)】JDBC
    计算机硬件基础与CPU工作原理
    Java学习笔记4.5.1 日期时间 - Date类
    【LabVIEW FPGA入门】NI 环境安装教程
    短视频解析易语言代码
  • 原文地址:https://blog.csdn.net/Wdasdasda/article/details/132993734