vue3+vite+ts项目中使用vue-router

vite.config.ts:

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from "path";

export default defineConfig({
  plugins: [
    vue()
    ],
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "src"),
    }
  },
});

这里的__dirname和path会有红色下划线需要执行:

npm install --save-dev @types/node

tsconfig.json

{
  "files": [],
  "references": [
    { "path": "./tsconfig.app.json" },
    { "path": "./tsconfig.node.json" }
  ],
  "compilerOptions": {
    "module": "ESNext",
    "moduleResolution": "Node",
    "target": "ESNext",
    "lib": ["DOM", "ESNext"],
    "types": ["vite/client", "vue-router"],
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"]
    }
  }
}

在src目录下新建一个router
vue3+vite+ts项目中使用vue-router_第1张图片

index.ts

//通过vue-router插件实现模板路由配置
import { createRouter, createWebHashHistory } from 'vue-router'
import { routes } from './routes'
//创建路由器
const router = createRouter({
    //路由模式根据需求选择
    history: createWebHashHistory(),
    routes: routes,
})
export default router

routes.ts



 
import type { RouteRecordRaw } from 'vue-router';
 
//对外暴露配置路由
export const routes: Array<RouteRecordRaw> = [
    {
        path: '/',
        name: 'home',
        component: () => import('@/page/home/index.vue'),
        meta: {}
    },
   
]

App.vue

<script setup lang="ts">

</script>

<template>
  <router-view />
</template>

<style scoped></style>

main.ts

import { createApp } from 'vue'
import './style.css'

import App from './App.vue'

import router from '@/router/index'

const app = createApp(App)
app.use(router)
app.mount('#app')

你可能感兴趣的:(Vue,vue.js,前端,javascript)