创建router文件夹,内部创建index.js文件
main.js内
import router from "./router/index.js";
app.use(router);
index.js内部
一:基础配置····················
import { createRouter, createWebHistory } from "vue-router";
const router = createRouter({
history: createWebHistory(),
routes: [
{
path: "/",
redirect: "/home",
},
{
path: "/home",
name: "home",
component: () => import("../components/Home.vue"),
meta:{
name:"why",
age:18,
},
children:[
{
path: "/about",
component: () => import("../components/About.vue"),
},
]
},
{
path: "/about/:id",
name: "about",
component: () => import("../components/About.vue"),
},
{
path: "/:pathMatch(.*)",
component: () => import("./components/404.vue"),
},
],
});
const admin = true;
if (admin) {
router.addRoute({
path: "/admin",
component: () => import("../components/Admin.vue"),
});
router.addRoute("home", {
path: "vip",
component: () => import("../components/Vip.vue"),
});
}
router.removeRoute('home')
router.getRoutes()
router.beforeEach((to, from) => {
const token = localStorage.getItem("token");
if (!token && to.path === "/order") {
return "/login";
}
});
export default router;
页面拿到路由属性
import { useRoute } from "vue-router";
const route = useRoute()
console.log(route.params.id);
{{$route.params/query}}
编程式导航跳转
import { useRouter } from "vue-router";
const router = useRouter();
function toHomePage(){
router.push("/home")
router.push({
path:"/home",
query:{
name:"why",
age:18
}
})
router.back()
router.go(1/-1)
}