vue3+router的使用

vue3+router的使用

自己创建了两个vue文件,用来演示路由的使用

image-20241117184458411

代码如下

(1)class.vue

<template>
    <div>
        当前为class
    </div>
</template>

<script>
    export default {
        name:'ClassView'
    }
</script>

<style lang="scss" scoped>

</style>

(2)index.vue

<template>
    <div>
        当前为首页
    </div>
</template>

<script>
    export default {
        name:' IndexHome',
    }
</script>

<style lang="scss" scoped>

</style>
项目文件的结构

src/
├── main.js
├── router/
│ └── index.js
├── views/
│ ├── Index.vue
│ └── Class.vue
├── App.vue

1.安装的 vue-router

npm install vue-router@4

2.创建router文件夹

image-20241117175932750

①创建一个index.js文件
import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/index.vue'; // 首页组件
import Class from '../views/class.vue'; // 课堂组件

// 定义路由规则
const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
  },
  {
    path: '/class',
    name: 'Class',
    component: Class,
  },
];

// 创建路由实例
const router = createRouter({
  history: createWebHistory(process.env.BASE_URL), // 使用 history 模式
  routes,
});

export default router;

②解释

{
path: ‘/class’,
name: ‘Class’,
component: Class,
},

1.path: ‘/class’,

代表打开页面的路径,访问/class路径时会打开Class组件,由代码import Class from ‘…/views/class.vue’; 可知:即打开class.vue页面。

/代表初始默认页面,如下图

image-20241117185920108

  1. component: Class,

​ component为组件,对应import Class from ‘…/views/class.vue’;这个代码,可以Class来代替class.vue页面。

  1. name: ‘Class’,

给这个组件取一个名字,可以路由跳转时用到,具体看后面内容。

3.修改主入口文件:main.js
import { createApp } from 'vue';
import App from './App.vue';
import router from './router'; // 引入路由实例

// 创建应用实例并挂载路由
createApp(App)
  .use(router) // 使用路由
  .mount('#app'); // 挂载到 DOM

4.App.vue文件
①代码
<template>
  <div class="app">
    <div class="top">
      <router-link class="nav1" to="/">首页</router-link>
      <router-link class="nav1" to="/class">课堂</router-link>
    </div>
    <div class="center">
      <div class="main">
        <router-view></router-view>
      </div>
    </div>
  </div>
</template>

<style>
.app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}
.top {
  text-align: center;
  height: 8%;
  background-color: aliceblue;
}
.center {
  display: flex;
  height: 100%;
  width: 100%;
  justify-content: center; /* 水平居中 */
}
</style>

②部分讲解
  <router-link class="nav1" to="/">首页</router-link>
      <router-link class="nav1" to="/class">课堂</router-link>

<router-link>

  • router-link 是 Vue Router 提供的组件,类似于 HTML 中的 <a> 标签,用于在 Vue 应用中导航。
  • 它的主要功能是生成一个可点击的链接,同时更新 URL 地址,而无需重新加载页面。

to 属性

  • 指定导航目标的路径:
    • / 对应路由配置中的根路径(Home 页面)。
    • /class 对应路由配置中的 class 页面。

class="nav1"

  • 为该链接添加了 CSS 类名 nav1,可以用于样式设置,例如控制字体大小、颜色、边距等。
③补充

用name来进行路由跳转

 <router-link :to="{ name: 'Home' }">首页</router-link>
    <router-link :to="{ name: 'Class' }">课堂</router-link>

该代码和上面代码等价,这里也解释了name的作用。

Vue 3 中结合 Vue Router 实现页面跳转是一种非常常见的前端开发场景。以下是关于 `vue3 + router` 页面跳转的相关介绍: ### 使用步骤 #### 1. 安装 Vue Router 首先需要安装 Vue Router 的对应版本,确保其适用于 Vue 3: ```bash npm install vue-router@4 ``` #### 2. 配置路由文件 创建一个路由配置文件(如 `router/index.js`),并设置好各个路由路径及对应的组件: ```javascript import { createRouter, createWebHistory } from &#39;vue-router&#39;; import Home from &#39;../views/Home.vue&#39;; // 假设有一个首页组件 import About from &#39;../views/About.vue&#39;; // 假设有另一个“关于我们”页的组件 const routes = [ { path: &#39;/&#39;, name: &#39;Home&#39;, component: Home, }, { path: &#39;/about&#39;, name: &#39;About&#39;, component: About, } ]; const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes, }); export default router; ``` 然后,在主应用入口文件 `main.js` 或者 `main.ts` 引入该路由器,并将其挂载到根实例上: ```javascript import { createApp } from &#39;vue&#39;; import App from &#39;./App.vue&#39;; import router from &#39;./router&#39;; createApp(App).use(router).mount(&#39;#app&#39;); ``` #### 3. 路由导航 - 页面跳转的方式 在实际项目中,可以有多种方式实现从一个页面跳转至另一个页面。 ##### (1)通过 `<router-link>` 标签 这是最简单直接的一种做法。例如: ```html <template> <div> <!-- 导航 --> <router-link to="/">回到主页</router-link> | <router-link :to="{name: &#39;About&#39;}">前往关于页面</router-link> <!-- 内容展示区域 --> <router-view></router-view> </div> </template> ``` 在这里使用了两个标签分别指向根目录和名为 "About" 的路由地址。 ##### (2)编程式导航 (Programmatic Navigation) 如果希望更动态地控制跳转过程,则可以用 JavaScript 编程的方式来完成此操作。 比如在一个按钮点击事件内触发跳转: ```js this.$router.push(&#39;/&#39;); // 或者传对象形式 this.$router.push({ name: &#39;About&#39; }); ``` ### 注意事项 - **命名路由**:利用名字而非硬编码 URL 可让代码更具可读性和维护性; - **传递参数**:可以通过查询字符串、URL 参数等手段将数据带过去目标页面处理;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值