前端路由的设置:
Vue2路由(vue-router3)
安装插件 npm i vue-router@3
router/index.js文件设置

import Vue from "vue";
import VueRouter from "vue-router";
Vue.use(VueRouter);
//创建路由器实例
const router = new VueRouter({
    mode: 'hash',
    routes: [{}]
})

export default router

main.js文件设置

 import router from “./router ”
 new Vue({
 Render:h=>h(App),
 router 
 }).$mount(“#app”)

组件中的应用
页面显示
<router-view></router-view>
路由跳转:

<router-link to=”/home”></router-link>

或者使用编程式导航,this.$route.push/this.$route.replace
两者区别是,前者有history,后者没有。
编程式导航携带可以携带query或者params参数

Vue3路由(vue-router4)
安装插件 npm i vue-router
router/index.ts文件设置

// 引入创建路由对象的函数
import { createRouter,createWebHashHistory,createWebHistory } from "vue-router";

let router = createRouter({
    history:createWebHashHistory(),
    routes:[{
        path:"/register",
        component:()=>import("../pages/register/Register.vue")
    },{
        path:"/login",
        component:()=>import("../pages/login/Login.vue")
    }]

})

export default router

main.ts文件设置

import router from './router';
app.use(router)

vue3路由跳转:
setup函数中没有this,vue2的方法不可用,使用useRouter函数

// 获取路由对象的函数
import { useRouter } from "vue-router"
let $router = useRouter()
const gohome = ()=>{
$router.push({
  path:"/home"
})

路由元信息:
meta可以将任意信息附加到路由上,如过渡名称、谁可以访问路由等。这些事情可以通过接收属性对象的meta属性来实现。

const routes = [
  {
    path: '/posts',
    component: PostsLayout,
        // 只有经过身份验证的用户才能创建帖子
        meta: { requiresAuth: true }
  ]
  }
]