首页 > 其他分享 >路由封装,连接导航router-link

路由封装,连接导航router-link

时间:2024-12-13 21:56:48浏览次数:11  
标签:vue js Vue link router main 路由

路由的封装抽离:

所有路由配置堆在main.js中不合适,需将路由模块抽离出来,以便维护

将与路由相关信息提取到src文件夹下的router文件夹下的index.js文件中

在main.js中就只需要导入当前路由,并且注入到当前实例中,其他与路由相关信息全剪切到index.js中

 

// index.js

// 路由的使用步骤 5+2
//  1.下载 v3.6.5
// 2.引入
// 3.安装注册Vue.use(Vue插件)
// 4.创建路由对象
// 5.注入到new Vue中,建立关联

// 2个核心步骤
// 1.建组件(views目录),配规则
// 2.准备导航链接,配置路由出口(匹配的组件所展示的位置)

import Find from '@/views/Find.vue'
import My from '@/views/My.vue'
import Friend from '../views/Friend.vue'

import Vue from 'vue' //原本在main.js中已经导入了vue,所以VueRouter初始化用到vue不报错,但是这里没有导入vue,插件初始化又用到了,所以需要先导入
import VueRouter from 'vue-router'
Vue.use(VueRouter) //VueRouter插件初始化
const router = new VueRouter({  //创建路由对象
  //routes 配置路由规则
  //route 一条路由规则就是一个对象 {path:路径,component:组件}
  routes: [
    { path: '/find', component: Find },
    { path: '/my', component: My },
    { path: '/friend', component: Friend },

  ]
})
export default router //因为路由对象要在main.js中使用,所以需要导出,导出路由对象
  1. 首先因为将原本的信息从main.js中调到了router文件夹下的index.js中,所以组件相对路径不再是 ./ 而变成了 ../  。这样看要考虑组件相对路径比较麻烦,直接使用@,指向的是src目录
  2. 在进行VueRouter插件初始化时使用到了Vue,在main.js中已经导入了Vue,所以能直接使用Vue.use(VueRouter),而到了index.js中需要重新导入。imort Vue from 'vue'
  3. 创建的路由对象需要在main.js中进行导入,所以在index.js中需要进行export default router导出,然后在main.js中 import router from './router/index.js'
  4. 补充: . /是从当前文件的同级进行查找其他文件, . . /是从当前文件上一级进行查找其他文件

 

// main.js
import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false

// // 全局注册指令
// // 第一个参数是指令名,第二个参数是指令的配置项(在配置项里可以写指令相关的钩子,相关的生命周期函数)
// Vue.directive('focus', {
//   // inserted会在指令所在元素被插入到页面时触发
//   inserted(el) {
//     // el就是指令所绑定的元素
//     el.focus()


//   }
// })



import router from './router/index.js'
new Vue({
  render: h => h(App),
  // router:router //将路由对象注入到Vue实例中(冒号后是路由对象,简写的话键值要一样)
  router
}).$mount('#app')

声明式导航 - 导航链接


 

  • 虽然代码中写的是router-link标签,但是实际渲染的时候是a标签。
  •  点击“我的音乐”链接的时候,页面渲染自动出现两个类
  • 点击到哪个链接,哪个链接就会加上这两个类
  • 为类添加背景色,点击哪个链接,哪个链接就会高亮显示

 

声明式导航router-link   -  两个类名的区别

  • router-link-exact-active 精确匹配   to="/my"仅仅可以匹配 /my
  • router-link-active模糊匹配(用的多)  to="/my" 可以匹配 /my  /my/a   /my/b  ...以my开头的即可

标签:vue,js,Vue,link,router,main,路由
From: https://blog.csdn.net/m0_63178019/article/details/144365591

相关文章

  • 定制链接类名,两类跳转传参,vue路由重定向,404,模式设置
    router-link-exact-active和router-link-active两个类名都太长,可以在router路由对象中定制进行简化//index.js//路由的使用步骤5+2//1.下载v3.6.5//2.引入//3.安装注册Vue.use(Vue插件)//4.创建路由对象//5.注入到newVue中,建立关联//2个核心步骤/......
  • 路由之间是怎么跳转的?有哪些方式?
    1. React路由跳转方式(ReactRouter)在React中,路由跳转通常使用ReactRouter来管理。ReactRouter提供了不同的跳转方式。<Link>组件跳转使用<Link>组件来进行路由跳转,它会渲染为一个HTML<a>标签,不会引起页面的刷新,而是通过路由机制实现视图切换。import{Lin......
  • vue——路由守卫beforeEach, 说明及实例问题
    一.说明导航守卫官方文档:在路由守卫中,只有next()是放行,其他的诸如:next('/login')、next(to)或者next({...to,replace:true})都不是放行,而是:中断当前导航,执行新的导航例1:beforeEach((to,from,next)=>{next('/login')}实际执行流程:beforeEach((to,fro......
  • 转载:【AI系统】NVLink 原理剖析
    随着AI技术的飞速发展,大模型的参数量已经从亿级跃升至万亿级,这一变化不仅标志着AI的显著提升,也对支持这些庞大模型训练的底层硬件和网络架构提出了前所未有的挑战。为了有效地训练这些复杂的模型,需要依赖于大规模的GPU服务器集群,它们通过高速网络相互连接,以便进行快速、高效......
  • 转载:【AI系统】NVLink 原理剖析
    随着AI技术的飞速发展,大模型的参数量已经从亿级跃升至万亿级,这一变化不仅标志着AI的显著提升,也对支持这些庞大模型训练的底层硬件和网络架构提出了前所未有的挑战。为了有效地训练这些复杂的模型,需要依赖于大规模的GPU服务器集群,它们通过高速网络相互连接,以便进行快速、高效......
  • 转载:【AI系统】分布式通信与 NVLink
    在进入大模型时代后,大模型的发展已成为AI的核心,但训练大模型实际上是一项比较复杂的工作,因为它需要大量的GPU资源和较长的训练时间。此外,由于单个GPU工作线程的内存有限,并且许多大模型的大小已经超出了单个GPU的范围。所以就需要实现跨多个GPU的模型训练,这种训练方式就......
  • 【技能储备】J-link RTT的使用
    此篇文章在2024年10月30日被记录技能储备系列是一些暂时由于时间或者其他客观因素暂时无法进行的工作,但是觉得很有用,因此做个记录,文章参考自Snow_2018在CSDN上的文章,原文链接为点击我写在前面本文介绍了J-LinkRTT的部分使用内容,很多地方参考和使用了J-Link的官方资料,有的......
  • UE4脸部捕捉 LiveLink 数据
     enumclassEARFaceBlendShape:uint8{ //Lefteyeblendshapes EyeBlinkLeft, EyeLookDownLeft, EyeLookInLeft, EyeLookOutLeft, EyeLookUpLeft, EyeSquintLeft, EyeWideLeft, //Righteyeblendshapes EyeBlinkRight, EyeLookDownRight, EyeLookInRight, EyeLookOut......
  • Ubuntu下vscode cmake jlink stm32 开发环境搭建
    安装gcc-arm-none-eabiJLink或者stm32cubeide自带前面两者安装vscode扩展CMakeToolsCortex-Debug修复vscode爆红.vscode/c_cpp_properties.json{"configurations":[{"name":"Linux","includePath"......
  • vue路由的钩子函数?
     在Vue中,路由的钩子函数可以用来在导航过程中执行一些操作,比如进行权限验证、页面加载前后的处理等。常用的路由钩子函数包括全局前置守卫、全局解析守卫、全局后置钩子以及路由独享守卫。下面是这些路由守卫函数的简要说明:全局前置守卫:beforeEach(to,from,next):在路由......