Vue3路由组件练习

Vue3 路由组件练习

1. 演示效果

2. 代码分析

2.1. 安装 vue-router

命令:npm i vue-router

应用插件:Vue.use(VueRouter)

2.2. 创建路由文件

在 src 文件夹下,创建router 文件夹,并在该文件夹创建index.js文件

2.3. 创建路由实例

使用 createRouter 函数创建一个路由器实例,并传入一个 history 参数,该参数是一个用于记录路由变更的 history 对象。

这里使用了环境变量 BASE_URL,从 import.meta.env.BASE_URL 中获取基础 URL。

组件的加载方式是通过闭包实现。在每个路由对象中,使用 component: () => import("../components/{componentName}.vue") 加载组件。

js 复制代码
import { createRouter, createWebHistory } from "vue-router";

const router = createRouter({
	history: createWebHistory(import.meta.env.BASE_URL),
	routes: [
		{
			path: "/useHook",
			name: "useHook",
			component: () => import("../components/UseHooks.vue"),
		},
		{
			path: "/musicList",
			name: "musicList",
			component: () => import("../components/MusicList.vue"),
		},
		{
			path: "/purchaseCar",
			name: "purchaseCar",
			component: () => import("../components/PurchaseCar.vue"),
		},
	],
});

export default router;

App.vue 文件中,我们使用 router-link 组件导航,通过传入 to 属性指定链接。<router-link> 默认会被渲染成一个 <a> 标签

<router-view> 标签中,我们使用了默认的路由组件。当你点击路由链接时,Vue Router 会根据指定的目标路由渲染相应的路由组件。

js 复制代码
<template>
  <div class="wrapper">
    <router-link to="/" style="margin-right: 10px;">Go to Home</router-link><br>
    <router-link to="/musicList">Go to MusicList</router-link><br>
    <router-link to="/purchaseCar">Go to PurchaseCar</router-link><br>
    <router-link to="/useHook">Go to UseHook</router-link><br>

  </div>
  <br /><br />
  <router-view>
  </router-view>
</template>

<script setup>

</script>


<style scoped>
#wrapper {
  width: 100vw;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
}
</style>

3. 代码实现

3.1. index.js 文件

js 复制代码
import { createRouter, createWebHistory } from "vue-router";

const router = createRouter({
	history: createWebHistory(import.meta.env.BASE_URL),
	routes: [
		{
			path: "/useHook",
			name: "useHook",
			component: () => import("../components/UseHooks.vue"),
		},
		{
			path: "/musicList",
			name: "musicList",
			component: () => import("../components/MusicList.vue"),
		},
		{
			path: "/purchaseCar",
			name: "purchaseCar",
			component: () => import("../components/PurchaseCar.vue"),
		},
	],
});

export default router;

3.2. App 文件

js 复制代码
<template>
  <div class="wrapper">
    <router-link to="/" style="margin-right: 10px;">Go to Home</router-link><br>
    <router-link to="/musicList">Go to MusicList</router-link><br>
    <router-link to="/purchaseCar">Go to PurchaseCar</router-link><br>
    <router-link to="/useHook">Go to UseHook</router-link><br>

  </div>
  <br /><br />
  <router-view>
  </router-view>
</template>

<script setup>

</script>


<style scoped>
#wrapper {
  width: 100vw;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
}
</style>
相关推荐
whyutianict_vv12 分钟前
从 Web 前端到 HarmonyOS ArkTS:一次 AI 鸿蒙全栈智能体开发的迁移实录
前端·人工智能·harmonyos
qziovv1 小时前
前端转flutter——项目架构、初始化
前端·flutter
Ali885201 小时前
Python字符串方法速查表大全
前端·python
前端_刘师兄1 小时前
FAE工程师学习路线-进程
前端
冰暮流星1 小时前
javascript之webstorage用法
开发语言·javascript·ecmascript
执子念的飞鱼1 小时前
浏览器直接预览 Pages、Numbers、Keynote:iWork 格式真正难在哪
前端·javascript
alloc2 小时前
从延迟聚合到可解释诊断:MetricKit 的原理与工程化实践
前端
颜进强2 小时前
06 - OpenSpec change 从模糊想法到完整契约:new change / explore / propose 三连
前端·后端·ai编程
Cache技术分享2 小时前
499. Java 反射 - 获取类型上的注解
前端·后端
用户921080262862 小时前
左侧历史对话模块:使用 Conversations 搭建会话入口
前端