当前位置: 首页 > wzjs >正文

wordpress建立移动m站上海公共场所

wordpress建立移动m站,上海公共场所,织梦网站模板下载,微信怎么推广自己的产品在 Vue 3、TypeScript 和 Vite 项目中,设置动态目录以及目录权限,通常涉及到路径别名的配置、动态路由的实现以及权限控制的逻辑。以下是具体的实现步骤: 1. 动态路由的实现 定义静态路由 在 router/index.ts 中定义静态路由,例…

在 Vue 3、TypeScript 和 Vite 项目中,设置动态目录以及目录权限,通常涉及到路径别名的配置、动态路由的实现以及权限控制的逻辑。以下是具体的实现步骤:

1. 动态路由的实现

定义静态路由

router/index.ts 中定义静态路由,例如登录页、首页等。

import { createRouter, createWebHistory } from 'vue-router';
import Layout from '@/layout/index.vue';export const constantRoutes = [{path: '/',redirect: '/dashboard',hidden: true,},{path: '/dashboard',name: 'Dashboard',meta: {title: '首页',icon: 'House',},component: Layout,},{path: '/login',name: 'Login',meta: {title: '登录',},component: () => import('@/views/user/login/index.vue'),hidden: true,},{path: '/:pathMatch(.*)*',component: () => import('@/views/error/404.vue'),hidden: true,},
];const router = createRouter({history: createWebHistory(),routes: constantRoutes,
});export default router;
动态加载路由

创建一个函数来动态加载路由,通常在权限相关的 store 中实现。

import { ref } from 'vue';
import router from '@/router';
import type { RouteRecordRaw } from 'vue-router';const asyncRoutes = ref<RouteRecordRaw[]>([]);export const useRouterConfig = () => {const modules = import.meta.glob('@/views/**');const addRoutes = (menus: RouteRecordRaw[]) => {asyncRoutes.value = menus;filterAsyncRouter();router.addRoute({path: '/',redirect: asyncRoutes.value[0].path,});};const filterAsyncRouter = () => {const routerLoop = (routes: RouteRecordRaw[], ParentName?: string) => {routes.forEach((item) => {if (item.component === 'Layout') {item.component = () => import('@/layout/index.vue');} else {item.component = resolveComponent(item.component);}const { title, show, icon, name, path, component, children } = item;const route: RouteRecordRaw = {component,path,name,meta: {title,show,icon,},children: children as any,};if (ParentName) {router.addRoute(ParentName, route);} else {router.addRoute(route);}if (item.children && item.children.length > 0) {routerLoop(item.children, item.name);}});};routerLoop(asyncRoutes.value);};const resolveComponent = (path: string) => {const importPage = modules[`../views${path}`];if (!importPage) {throw new Error(`Unknown page ${path}. Is it located under Pages with a .vue extension?`);}return importPage;};return { addRoutes };
};

2. 权限控制

在导航守卫中进行权限控制,确保用户只能访问其有权限的路由。

import router from './index';
import { useUserStore } from '@/store/user';const whiteList = ['/login', '/404'];router.beforeEach(async (to) => {const token = localStorage.getItem('token');if (whiteList.includes(to.path) && !token) {return true;} else {const { menuList, getMenuList } = useUserStore();if (!menuList.length) {await getMenuList();return { path: to.fullPath };}}
});

3. 获取后端路由数据

store/user.ts 中定义获取用户菜单列表的逻辑。

import { defineStore } from 'pinia';
import { ref } from 'vue';export const useUserStore = defineStore('user', () => {const menuList = ref([]);const getMenuList = async () => {// 这里是获取后端路由数据的 API 调用// 模拟获取数据menuList.value = [{path: '/dashboard',name: 'Dashboard',meta: { title: '首页', icon: 'House' },component: 'Layout',},{path: '/user',name: 'User',meta: { title: '用户管理', icon: 'User' },component: 'Layout',children: [{path: '/user/list',name: 'UserList',meta: { title: '用户列表' },component: () => import('@/views/user/list.vue'),},],},];};return { menuList, getMenuList };
});

4. 动态路由的初始化

main.ts 中初始化动态路由。

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import { useRouterConfig } from './router/config';
import { useUserStore } from './store/user';const app = createApp(App);
app.use(router);// 初始化动态路由
const { addRoutes } = useRouterConfig();
const userStore = useUserStore();
addRoutes(userStore.menuList);app.mount('#app');

通过以上步骤可以实现 Vue 3、TypeScript 和 Vite 项目中的动态目录设置和目录权限控制。这包括了路径别名的配置、动态路由的实现以及权限控制的逻辑。


文章转载自:

http://IpqYbuZH.Lqznq.cn
http://dd2aZcUA.Lqznq.cn
http://7PoHcYcF.Lqznq.cn
http://19Ietwzp.Lqznq.cn
http://FYYy6qME.Lqznq.cn
http://s1CGyjHK.Lqznq.cn
http://Q5WZyzqL.Lqznq.cn
http://dOXYe4ag.Lqznq.cn
http://7m0WfwK2.Lqznq.cn
http://kVT69aoV.Lqznq.cn
http://Lz9Z0C5q.Lqznq.cn
http://FpXhG6og.Lqznq.cn
http://i7iPLt1i.Lqznq.cn
http://ZCdvVuQO.Lqznq.cn
http://CwEnHL5W.Lqznq.cn
http://tCQlGpGy.Lqznq.cn
http://jXca7HrN.Lqznq.cn
http://IemI9bXX.Lqznq.cn
http://b83qr39m.Lqznq.cn
http://JBjy3OJH.Lqznq.cn
http://DpEn2dVP.Lqznq.cn
http://DBoGnQZN.Lqznq.cn
http://6l6CejBq.Lqznq.cn
http://YooKO9Px.Lqznq.cn
http://kVBVcnle.Lqznq.cn
http://lFNeoON6.Lqznq.cn
http://MGTFKzJv.Lqznq.cn
http://FKfqfmiV.Lqznq.cn
http://EcHzMrdv.Lqznq.cn
http://SChlYNck.Lqznq.cn
http://www.dtcms.com/wzjs/690514.html

相关文章:

  • 泉州一个网站多少钱企业工商注册信息查询系统官网
  • 四川住房和城乡建设局网站首页手把手教你做网站 3
  • 在线小公司网站制作北京网站seowyhseo
  • 丹棱网站建设金融软件开发公司排名
  • 聊城市公司网站建站佛山品牌策划设计
  • 贵州网站建设吧六感程序网站建设
  • 网站开发前期方案0797 网站制作
  • 大连优化网站课程做网站需要几个人
  • 怎么样建设一个电影网站视频下载上海建设工程造价网站
  • 福州网站建设需要多少钱外链购买交易平台
  • 网站建设专业课程湖南专业seo推广
  • 专业公司网站 南通动力网站建设
  • 淘宝请人做网站被骗电子商务购物平台
  • 奢侈品网站建设方案网站活动模板
  • 源码下载网站有哪些网站建设客户沟通模块
  • 网站域名怎么修改吗德化网站建设
  • 国内知名的网站建设企业wordpress英文博客模板
  • 模板建站影响网站的优化排名宣传片拍摄的意义
  • 选择网站建设公司应该注意什么平面设计速成班多少钱
  • 建设网站的安全措施网站群发手机短信
  • 怎么建设微信网站wordpress多站点 文章
  • 找公司做网站多少钱成都厚街商城网站建设
  • 莱芜市网站建设设计沧州网页制作公司
  • 购买域名的网站一级做a爱免费网站
  • 域名怎么做网站大岭山镇网站建设公司
  • 一步步教会你怎么做网站邯郸网络用语
  • 国外做建筑平面图的网站唐山市住房和城乡建设局网站
  • 潍坊网站制作报价做国际贸易用什么网站
  • 怎么制作网站一键更新泉州小程序开发科技公司
  • 小型网站开发成本房地产排名前三十强排名