vue实现页面切换
Vue 实现页面切换的方法
Vue 中实现页面切换通常使用 Vue Router,这是 Vue.js 官方的路由管理器。以下是几种常见的实现方式:
使用 Vue Router 的基本配置
安装 Vue Router:
npm install vue-router
在项目中配置路由:
import { createRouter, createWebHistory } from 'vue-router';
import Home from './views/Home.vue';
import About from './views/About.vue';
const router = createRouter({
history: createWebHistory(),
routes: [
{ path: '/', component: Home },
{ path: '/about', component: About }
]
});
在 main.js 中引入路由:
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
const app = createApp(App);
app.use(router);
app.mount('#app');
在模板中使用 <router-link> 和 <router-view>:
<router-link to="/">Home</router-link>
<router-link to="/about">About</router-link>
<router-view></router-view>
动态路由切换
动态路由允许根据参数切换页面:

const routes = [
{ path: '/user/:id', component: User }
];
在组件中获取参数:
this.$route.params.id
编程式导航
通过代码控制页面跳转:
this.$router.push('/about');
this.$router.push({ path: '/user', query: { id: '123' } });
this.$router.go(-1); // 后退
嵌套路由
嵌套路由适用于多层页面结构:

const routes = [
{
path: '/user',
component: User,
children: [
{ path: 'profile', component: Profile },
{ path: 'settings', component: Settings }
]
}
];
路由守卫
路由守卫用于控制页面切换权限:
router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth && !isAuthenticated) {
next('/login');
} else {
next();
}
});
过渡动画
为页面切换添加过渡效果:
<router-view v-slot="{ Component }">
<transition name="fade">
<component :is="Component" />
</transition>
</router-view>
CSS 过渡样式:
.fade-enter-active, .fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
懒加载路由
优化性能,按需加载页面组件:
const routes = [
{ path: '/about', component: () => import('./views/About.vue') }
];
这些方法涵盖了 Vue 中页面切换的主要场景,可以根据实际需求选择适合的方式。






