Vue3路由配置、跳转

router/index.js

import { createRouter, createWebHistory } from 'vue-router'

// createRouter 创建路由实例,===> new VueRouter()
// 1. history模式: createWebHistory()   http://xxx/user
// 2. hash模式: createWebHashHistory()  http://xxx/#/user

// vite 的配置 import.meta.env.BASE_URL 是路由的基准地址,默认是 ’/‘
// https://vitejs.dev/guide/build.html#public-base-path

// 如果将来你部署的域名路径是:http://xxx/my-path/user
// vite.config.ts  添加配置  base: my-path,路由这就会加上 my-path 前缀了

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL), //所有请求都会加上base路径
  routes: []
})

export default router

import.meta.env.BASE_URL 是Vite 环境变量:https://cn.vitejs.dev/guide/env-and-mode.html
meta.env.BASE_URL可以在vite.config.js中进行配置:base,不配置默认为/

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  base: '/',
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

Vue3中路由的使用跟Vue2不同,因为vue3中没有this

<script setup>
    const goList = () => {
        this.router.push('/list')  //此处this为undefined
    }
script>

<template>
	<button @click="goList" >列表button>  //错误
    <button @click="$router.push('/list')">列表button> //正确
template>
<script>
	import { useRoute, useRouter } from 'vue-router'
    const router= useRouter() //进行路由跳转
    const route = useRoute()  //获取请求参数
    
    const goList = () => {
        router.push("/list")
    }
script>

你可能感兴趣的:(#,vue,vue.js)