当前位置:首页 > VUE

vue实现页面切换

2026-02-11 01:00:28VUE

Vue 实现页面切换的方法

使用 Vue Router 进行路由切换

Vue Router 是 Vue.js 的官方路由管理器,用于实现单页应用(SPA)的页面切换。
安装 Vue Router:

npm install vue-router

配置路由:

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from './views/Home.vue'
import About from './views/About.vue'

Vue.use(VueRouter)

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About }
]

const router = new VueRouter({
  routes
})

export default router

在根实例中注入路由:

import router from './router'

new Vue({
  router,
  render: h => h(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

通过 props 传递参数:

const routes = [
  { path: '/user/:id', component: User, props: true }
]

编程式导航

通过 this.$router 进行页面跳转:

this.$router.push('/about')
this.$router.push({ path: '/user', query: { id: '123' } })
this.$router.replace('/home') // 替换当前路由
this.$router.go(-1) // 返回上一页

路由守卫控制页面切换

全局前置守卫:

vue实现页面切换

router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login')
  } else {
    next()
  }
})

组件内守卫:

export default {
  beforeRouteEnter(to, from, next) {
    // 在渲染该组件的对应路由被验证前调用
    next()
  },
  beforeRouteLeave(to, from, next) {
    // 导航离开该组件的对应路由时调用
    next()
  }
}

过渡动画效果

为路由切换添加过渡效果:

<transition name="fade">
  <router-view></router-view>
</transition>

定义 CSS 过渡样式:

.fade-enter-active, .fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}

嵌套路由

配置嵌套路由:

const routes = [
  {
    path: '/user',
    component: User,
    children: [
      { path: 'profile', component: Profile },
      { path: 'posts', component: Posts }
    ]
  }
]

在父组件中显示子路由:

vue实现页面切换

<router-view></router-view>

懒加载路由

按需加载路由组件:

const routes = [
  { path: '/about', component: () => import('./views/About.vue') }
]

命名路由和命名视图

定义命名路由:

const routes = [
  { path: '/user', name: 'user', component: User }
]

使用命名路由跳转:

this.$router.push({ name: 'user' })

定义命名视图:

const routes = [
  {
    path: '/',
    components: {
      default: Home,
      sidebar: Sidebar
    }
  }
]

使用命名视图:

<router-view name="sidebar"></router-view>
<router-view></router-view>

标签: 页面vue
分享给朋友:

相关文章

实现.vue文件

实现.vue文件

创建.vue文件的基本结构 一个标准的.vue文件包含三个部分:模板(template)、脚本(script)和样式(style)。这种结构允许开发者在一个文件中管理组件的HTML、JavaScrip…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue实现曲线

vue实现曲线

Vue 实现曲线的方法 在 Vue 中实现曲线可以通过多种方式,包括使用 SVG、Canvas 或第三方库如 D3.js、ECharts 等。以下是几种常见的方法: 使用 SVG 绘制曲线 SVG…

vue 实现搜索

vue 实现搜索

实现 Vue 搜索功能 在 Vue 中实现搜索功能通常涉及以下几个关键步骤: 数据绑定与输入监听 使用 v-model 双向绑定搜索输入框的值,监听用户输入: <template>…

vue实现tree

vue实现tree

Vue 实现 Tree 组件 使用 Vue 实现 Tree 组件可以通过递归组件的方式来实现层级结构展示。以下是一个完整的实现方法: 基础递归组件实现 创建 Tree 组件文件 Tree.vue,使…

vue监听实现

vue监听实现

Vue 监听实现方法 在 Vue 中可以通过多种方式实现监听数据变化或事件触发,以下是常见的几种方法: 使用 watch 选项 watch 是 Vue 提供的核心功能之一,用于观察和响应 Vue 实…