VueRouter笔记

发布于:2025-04-19 ⋅ 阅读:(20) ⋅ 点赞:(0)

定义路由

import { createMemoryHistory, createRoute } from 'vue-router';
import MyView1 from './MyView1.vue';
import MyView2 from './MyView2.vue';

const routes = [
  { path: '/1', component: MyView1 },
  { path: '/2', component: MyView2 }
];

const router = createRouter({
  history: createMemoryHistory(),
  routes
});


app.use(useRouter());
app.mount('#myApp');

使用路由

<RouterLink to='/1'>Page 1</RouterLink>
<RouterLink to='/2'>Page 2</RouterLink>
<RouterView />

动态参数

const routes = [
  {path: '/users/:id(\\d+)', component: User},
  {path: '/users/:name', component: User}
];

// User.vue
/*
<p>{{ $route.params.id }}</p>
*/

const router = useRouter();
const userId = router.params.id;

嵌套路由

const routes = [
  { path: '/users/:id(\\d+)',
    component: User,
    children: [
      { path: 'profile', component: UserProfile },
      { path: 'posts', component: UserPosts }
    ]
  }
]

具名路由

{ path: 'users', name: 'users', component: User }

跳转到路由

router.push('/users/1');
router.push({ path: '/users/1' });
router.push({ name: '/users/profile', params: {'name': 'alex'}});
router.push({ name: '/users/profile', query: {'name': 'alex'}});
router.replace('/users/1'); // 不保存历史记录。
router.go(1); // 前进
router.go(-2); // 后退2次。

全局路由前置守卫

router.beforeEach((to, from) => {
  let forward = true;
  // ..
  return forward;
});

元数据

{ path: '/users', component: User, meta: { foo: 'bar' }}

网站公告

今日签到

点亮在社区的每一天
去签到