当前位置:首页 > VUE

vue实现户籍系统路由实现

2026-01-08 04:04:52VUE

户籍系统路由实现(Vue.js)

户籍系统通常需要管理居民信息、户籍变动、统计查询等功能模块。以下基于Vue Router的实现方案:

路由模块设计

src/router/index.js中定义核心路由结构:

import { createRouter, createWebHistory } from 'vue-router'

const routes = [
  {
    path: '/',
    redirect: '/dashboard'
  },
  {
    path: '/dashboard',
    component: () => import('@/views/Dashboard.vue'),
    meta: { title: '系统首页' }
  },
  {
    path: '/resident',
    component: () => import('@/views/resident/Index.vue'),
    children: [
      {
        path: 'list',
        component: () => import('@/views/resident/List.vue'),
        meta: { title: '居民信息管理' }
      },
      {
        path: 'add',
        component: () => import('@/views/resident/Add.vue'),
        meta: { title: '新增居民' }
      }
    ]
  },
  {
    path: '/household',
    component: () => import('@/views/household/Index.vue'),
    children: [
      {
        path: 'transfer',
        component: () => import('@/views/household/Transfer.vue'),
        meta: { title: '户籍迁移' }
      },
      {
        path: 'split',
        component: () => import('@/views/household/Split.vue'),
        meta: { title: '分户处理' }
      }
    ]
  }
]

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})

router.beforeEach((to) => {
  document.title = to.meta.title || '户籍管理系统'
})

export default router

动态路由实现

对于需要权限控制的系统,可结合后端返回的权限数据动态生成路由:

// 在登录后调用此方法
function generateDynamicRoutes(userPermissions) {
  const dynamicRoutes = []

  if (userPermissions.includes('audit')) {
    dynamicRoutes.push({
      path: '/audit',
      component: () => import('@/views/Audit.vue'),
      meta: { title: '变更审核', requiresAuth: true }
    })
  }

  dynamicRoutes.forEach(route => {
    router.addRoute(route)
  })
}

路由守卫配置

添加全局路由守卫进行权限校验:

router.beforeEach((to, from, next) => {
  const isAuthenticated = localStorage.getItem('token')

  if (to.matched.some(record => record.meta.requiresAuth)) {
    if (!isAuthenticated) {
      next({ path: '/login', query: { redirect: to.fullPath } })
    } else {
      next()
    }
  } else {
    next()
  }
})

嵌套路由视图

主布局文件中需放置顶层路由视图:

<!-- App.vue -->
<template>
  <div id="app">
    <main-header />
    <div class="main-container">
      <router-view />
    </div>
  </div>
</template>

子模块中使用二级路由视图:

<!-- views/resident/Index.vue -->
<template>
  <div class="resident-wrapper">
    <side-menu />
    <div class="content">
      <router-view />
    </div>
  </div>
</template>

路由传参方式

居民详情页可采用三种传参方式:

  1. 路径参数
    
    // 路由定义
    { path: '/resident/detail/:id', component: ResidentDetail }

// 组件获取 const route = useRoute() const residentId = route.params.id


2. 查询参数
```javascript
// 导航跳转
router.push({ path: '/resident/detail', query: { id: 123 } })

// 组件获取
const residentId = route.query.id
  1. 状态管理
    
    // 跳转前存储
    store.commit('setCurrentResident', residentData)

// 目标组件获取 const currentResident = computed(() => store.state.currentResident)

vue实现户籍系统路由实现

标签: 户籍路由
分享给朋友:

相关文章

动态路由vue实现

动态路由vue实现

动态路由的实现方式 在Vue中实现动态路由通常有两种主要方式:基于用户权限的动态路由和基于参数变化的动态路由。这两种方式都能有效提升应用灵活性。 基于用户权限的动态路由 通过用户角色或权限动态生成可…

vue如何实现路由

vue如何实现路由

路由基础配置 在Vue中实现路由通常使用Vue Router库。安装Vue Router后,在项目中创建路由配置文件(如router/index.js),定义路由路径与组件的映射关系: import…

vue实现登录路由

vue实现登录路由

Vue 登录路由实现方法 路由配置 在 router/index.js 中配置登录路由和需要权限的路由。使用 meta 字段标记需要认证的路由。 import Vue from 'vue' impo…

vue路由实现tab

vue路由实现tab

Vue路由实现Tab的方法 在Vue中实现Tab功能可以通过路由和动态组件两种方式完成。以下是基于路由的实现方法: 使用Vue Router实现Tab 安装Vue Router并配置路由:…

vue实现路由切换

vue实现路由切换

Vue 路由切换实现方法 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router 依赖包: npm install vue-router 配置路由 在项目中创建路由配置文…

vue路由实现缓存

vue路由实现缓存

Vue 路由实现缓存的常用方法 使用 <keep-alive> 组件 在 Vue 中可以通过 <keep-alive> 组件缓存路由组件,避免重复渲染。需要将 <keep…