Vue-Router 第一节:基础内容

223 阅读2分钟

Vue-Router 第一节:基础内容

Vue Router~ 是 Vue.js 的官方路由。他的作用是 让用Vue.js构建单页面应用变得更轻松。 今天来学习第一节,开始喽~ 不知如何创建Vue项目的请移步主页。

一、安装

安装 Vue-Router,以下是命令:

npm:  npm install vue-router@4
yarn: yarn add vue-router@4
pnpm: pnpm add vue-router@4

1710212253076.jpg

二、基础内容

1、定义路由

1、在src下创建一个router文件,在文件夹里创建index.ts文件。

2、在src下创建views文件夹,在里面创建组件页面

1710223316848(1).jpg

3、配置@/路径(小扩展)

第一步:打开tsconfig.json配置文件,在 /* Linting */ 下添加

// tsconfig.json 文件"baseUrl": "",
    "paths": {
      "@/*": [ "src/*" ],
    }

1710223906549.jpg

第二步:在vite.config.ts 添加配置

  // vite.config.ts
  resolve: {
    // 设置文件./src路径为 @
    alias: [
      {
        find: '@',
        replacement: resolve(__dirname, './src')
      }
    ]
  }

1710228347194.jpg

第三步: 如果找不到path或者报错执行以下命令

npm install @types/node

4、定义路由并创建路由实例进行全局挂载

// router/index.ts
import About from '@/views/about/index.vue'
import { createRouter, createWebHistory,RouteRecordRaw} from "vue-router";
// 1、定义路由 每个路由都需要映射到一个组件。
const routes:Array<RouteRecordRaw> = [
    // 可直接导入或者引入
    {
        path: '/', 
        component: () => import("@/views/home/index.vue"),
    },
    {
        path: '/about', 
        component: About
    }
]
​
// 2、创建路由实例并传递routesconst router = createRouter({
    // 路由的模式:  vue2:
    // vue2 mode  history | vue3  createWebHistory
    // vue2 mode  hash    | vue3  createWebHashHistory
    // vue2 mode  abstact | vue3  createMemoryHistory   
    history: createWebHistory(),  
    routes
})
​
// 导出
export default router
​
// 在main.ts 创建并挂载实例import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import  router  from './router'const app = createApp(App)
app.use(router)
app.mount('#app')
​

2、router-view

将显示与 URL 对应的组件。你可以把它放在任何地方,以适应你的布局。

现在我们想开启项目显示Home,我们就需要在APP.vue添加router-view

<template>
<div>
  <router-view />    // 显示与 URL 对应的组件
</div>
</template><script setup lang="ts">
</script>
​
​
<style scoped>
div {
  background-color: pink;
}
</style>

1710903599207.jpg

3、router-link

使用router-link来进行导航,其相当于一个带有href属性的a标签。它是通过 to 来制定路径。

    <div>
        <router-link to="/about">go About</router-link>
    <br>
      <router-link to="/">go Home</router-link>
      <router-view />
    </div>
    </template>
    ​
    <script setup lang="ts">
    </script>
    ​
    ​
    <style scoped>
    div {
      background-color: pink;
    }
    </style>

1710904107944.jpg

今天的小节就结束啦~