vue路由配置

配置路由

打开src下的router下的index.js文件夹,在routes中添加配置。

path是访问路径。

name是路由的名字,在项目内部使用。

component是路由目标,也就是要展示的页面。

路由目标需要导入

javascript 复制代码
import { createRouter, createWebHistory } from 'vue-router'     // 导入配置路由的工具
import HomeView from '../views/HomeView.vue'                    // 导入组件
import Search from '../views/Search.vue';

// 创建路由对象
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  // 配置路由地址,一组对象表示一个目标
  routes: [   
    {
      path: '/',          // 目标地址ss
      name: 'home',       // 路由名
      component: HomeView // 路由目标
    },
    {
      path: '/about/:id/:type',
      name: 'about',
      component: () => import('../views/AboutView.vue')
    },
    {
      path: '/search',
      name: 'search',
      component: Search
    }
  ]
})

//对外暴露路由
export default router

挂载路由

打开main.js,将router文件挂载到app上

javascript 复制代码
import './assets/main.css'

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import Vant from 'vant'
import 'vant/lib/index.css'

const app = createApp(App)

app.use(router)
app.use(Vant)

app.mount('#app')

使用路由

打开app.vue

RouterView标签是要显示的内容,也就是index.js中component指向的目标。

RouterLink标签类似a标签,用于操控RouterView中显示的内容

html 复制代码
<script setup>
// useRoute可以获取路由中携带的数据
import { RouterLink, RouterView ,useRoute} from 'vue-router'
import HelloWorld from './components/HelloWorld.vue'
import HomeView from "@/views/HomeView.vue";

// 获得useRoute实例
const route = useRoute()	
</script>

<template>


	<!-- 通过该标记显示路由地址指向组件的内容 -->
	<RouterLink to="/"> Home</RouterLink>
	<!-- RouterLink类似于a标记可实现页面跳转,该标记支持路由地址匹配,to属性为匹配地址目标 -->	
	<RouterLink to="/search"> search</RouterLink>
	<RouterView />
</template>

<style lang="lcss" scoped>

</style>

组件内调用路由

传递参数

传递参数有两种方法,一是作为链接的一部分传递,二是通过链接后的参数传递。

javascript 复制代码
    {
      path: '/about/:id/:type',
      name: 'about',
      component: () => import('../views/AboutView.vue')
    }

这样就有id和type两个变量了

在目标组件内使用变量:

javascript 复制代码
import { ref } from 'vue';
import { useRoute } from 'vue-router'

// 获得useRoute实例
const route = useRoute()
html 复制代码
      <RouterLink to="/about/1/qwe">
        链接
      </RouterLink>

在目标组件中使用可以访问变量,其中params找的是网址的组成部分,query找的是?后跟的参数。

html 复制代码
{{ route.params.id }}
{{ route.params.type }}
{{ route.query.name }}

多值传递

同上

多个路由

嵌套路由配置

javascript 复制代码
const router = new VueRouter({  
  routes: [  
    {  
      path: '/parent',  
      component: ParentComponent,  
      children: [  
        {  
          path: 'child',  
          component: ChildComponent  
        }  
      ]  
    }  
  ]  
});

在这个例子中,当用户访问 /parent/child 路径时,ChildComponent 会被渲染到 ParentComponent 中的 <router-view>

命名视图配置

javascript 复制代码
const router = new VueRouter({  
  routes: [  
    {  
      path: '/',  
      components: {  
        default: DefaultComponent,  
        sidebar: SidebarComponent  
      }  
    }  
  ]  
});

在这个例子中,当用户访问 / 路径时,DefaultComponent 会被渲染到默认的 <router-view>,而 SidebarComponent 会被渲染到名为 sidebar<router-view>

相关推荐
liulilittle18 小时前
LIBTCPIP 技术探秘(tun2sys-socket)
开发语言·网络·c++·信息与通信·通信·tun
zbtlink19 小时前
2.5G路由器是啥?和家用的有哪些差异?
网络·智能路由器
以太浮标19 小时前
华为eNSP模拟器综合实验之- HRP(华为冗余协议)双机热备
运维·网络·华为·信息与通信
食咗未19 小时前
Linux tcpdump工具的使用
linux·服务器·网络·驱动开发·tcp/ip·测试工具·tcpdump
YJlio19 小时前
WinObj 学习笔记(15.7):看懂内核对象管理器与命名空间的“地图”
linux·服务器·网络·windows·笔记·学习·微信
MOON404☾19 小时前
003.端口扫描
网络·安全·web安全·网络安全·系统安全
F1331689295719 小时前
WD5030K,耐高压输出电流10A,WD5030A输出电流12A
网络·单片机·嵌入式硬件·物联网·汽车
我的golang之路果然有问题19 小时前
linux 个人笔记导出之网络,防火墙,定时,权限,后台
linux·运维·服务器·网络·笔记·个人笔记
dyxal19 小时前
Excel情感标注工具性能优化实战:从卡顿到流畅的蜕变
网络·性能优化·excel
北京耐用通信19 小时前
耐达讯自动化CANopen转Profibus 网关:实现光伏逆变器无缝接入工业以太网的技术解析
网络·人工智能·物联网·网络协议·自动化·信息与通信