首页 前端知识 Vue3 快速入门 (四) : 使用路由实现页面跳转

Vue3 快速入门 (四) : 使用路由实现页面跳转

2024-08-18 22:08:58 前端知识 前端哥 580 107 我要收藏

1. 本文环境

  • Vue版本 : 3.4.29
  • Node.js版本 : v20.15.0
  • 系统 : Windows11 64位
  • IDE : VsCode

2. vue 路由

Vue Router 是 Vue 官方的客户端路由解决方案。
客户端路由的作用是在单页应用 (SPA) 中将浏览器的 URL 和用户看到的内容绑定起来。当用户在应用中浏览不同页面时,URL 会随之更新,但页面不需要从服务器重新加载。

接下来,我们来介绍下,如何在Vue3中,使用路由。

2.1 安装vue 路由

npm install vue-router@4
复制

2.2 新建router/index.ts

新建router文件夹,然后在此文件夹下新建index.ts文件

//创建一个路由器,并暴露出去
//第一步 : 引入createRouter
import { createRouter, createWebHistory } from 'vue-router'
//引入一个一个可以能要呈现的组件
import Home from '@/components/Home.vue'
import News from '@/components/News.vue'
import About from '@/components/About.vue'
//第二步 : 创建路由器
const router = createRouter({
history : createWebHistory(), //路由器的工作模式
routes : [ //一个个的路由规则
{
path:'/home',
component:Home
},
{
path:'/news',
component:News
},
{
path:'/about',
component:About
},
]
})
//暴露出去
export default router
复制

2.3 引入路由器

修改main.ts,引入路由器

import './assets/main.css'
//引入createApp用于创建应用
import { createApp } from 'vue'
//引入App根组件
import App from './App.vue'
//引入路由器
import router from './router'
//场景一个应用
let app = createApp(App)
//使用路由器
app.use(router)
// 挂在整个应用到app容器中
app.mount('#app')
复制

2.4 新建Home.vue页面

<script setup lang="ts">
</script>
<template>
<div class="app">
<div>Home</div>
</div>
</template>
<style scoped></style>
复制

2.5 新建News.vue页面

<script setup lang="ts">
</script>
<template>
<div class="app">
<div>News</div>
</div>
</template>
<style scoped></style>
复制

2.6 新建About.vue页面

<script setup lang="ts">
</script>
<template>
<div class="app">
<div>About</div>
</div>
</template>
<style scoped></style>
复制

2.7 路由跳转

修改App.vue,点击RouterLink会跳转到相应的路由,改变的区域在RouterView

<script setup lang="ts">
import { RouterLink,RouterView } from 'vue-router';
</script>
<template>
<div class="app">
<h2>Vue路由测试</h2>
<!-- 导航区 -->
<div class="navigate">
<RouterLink to="/home" active-class="select">首页</RouterLink>
<RouterLink to="/news" active-class="select">新闻</RouterLink>
<RouterLink to="/about" active-class="select">关于</RouterLink>
</div>
<!-- 展示区 -->
<div class="main-content">
<RouterView></RouterView>
</div>
</div>
</template>
<style scoped>
.select{
font-size: 18px;
background-color:red;
}
</style>
复制

2.8 传递参数

上面我们已经使用路由,实现了页面间的跳转。
比如跳转新闻的时候,我们想传递一个mykey的参数,就在URL中,跟上?mykey=luckey

<RouterLink to="/news?mykey=luckey" active-class="select">新闻</RouterLink>
复制

在新闻页面News.vue中接收参数,这里通过useRoute()获取到路由,然后调用route.query.mykey获取到传参

<script setup lang="ts">
import { useRoute } from 'vue-router';
const route = useRoute();
const mykey = route.query.mykey;
console.log(mykey)
</script>
<template>
<div class="app">
<div>News: {{mykey}}</div>
</div>
</template>
<style scoped></style>
复制

2.9 点击Button的时候跳转路由

上文中是使用RouterLink组件来实现路由间的跳转,那如果想在button之类这种普通组件中,实现路由跳转,需要怎么做呢 ?
我们可以直接调用router.push(),传入路由URL,这样也能实现路由的跳转。

<script setup lang="ts">
import { useRouter } from 'vue-router';
const router = useRouter();
function goNews() {
router.push("/news?mykey=luckey");
}
</script>
<template>
<button @click="goNews">跳转新闻</button>
</template>
复制

3. vue路由相关文档

在 Vue 3 中,路由(Routing)用于定义应用程序中不同页面或视图之间的导航路径和规则。
更多vue的路由可以看以下网站 :
vue路由的官方文档
路由_基本切换效果

3. vue快速入门系列文

vue3 快速入门 (一) : 环境配置与搭建
vue3 快速入门 (二) : 第一个Vue网页
vue3 快速入门 (三) : vue中的图片路径
Vue3 快速入门 (四) : 使用路由实现页面跳转

转载请注明出处或者链接地址:https://www.qianduange.cn//article/16153.html
评论
还可以输入200
共0条数据,当前/页
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!