返回

让VUE.js项目更优雅:vue-router重构

见解分享

在上一篇文章中,我们已经成功的将TypeScript接入vue项目中。接下来,我们将把vue-router作为项目中的首选改造点。目前,我们的vue-router路由配置有上千行代码。第一步,我们需要将配置和逻辑进行分离。

通常情况下,我们会将路由配置直接写在Vue实例中。这样做虽然简单直接,但随着项目规模的增长,路由配置也会变得越来越复杂和难以维护。为了解决这个问题,我们可以将路由配置分离到单独的文件中。

首先,创建一个名为 routes.ts 的文件,并将以下代码复制到其中:

import { RouteConfig } from 'vue-router';

const routes: RouteConfig[] = [
  {
    path: '/',
    component: Home,
  },
  {
    path: '/about',
    component: About,
  },
  // ...其他路由配置
];

export default routes;

然后,在 main.ts 文件中,将以下代码添加到 Vue.use() 方法中:

Vue.use(VueRouter, { routes });

这样,我们就将路由配置从Vue实例中分离出来了。

接下来,我们需要将路由逻辑从组件中分离出来。通常情况下,我们会直接在组件中编写路由逻辑。这样做虽然简单直接,但会导致组件变得臃肿和难以维护。为了解决这个问题,我们可以将路由逻辑分离到单独的模块中。

首先,创建一个名为 router.ts 的文件,并将以下代码复制到其中:

import Vue from 'vue';
import VueRouter from 'vue-router';
import routes from './routes';

Vue.use(VueRouter);

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes,
});

export default router;

然后,在 main.ts 文件中,将以下代码添加到 Vue.createApp() 方法中:

const app = Vue.createApp(App);
app.use(router);
app.mount('#app');

这样,我们就将路由逻辑从组件中分离出来了。

现在,我们已经完成了vue-router的重构。通过分离配置和逻辑,并使用代码分割和动态导入技术,我们对现有项目进行了改造,提高了其性能、可维护性和可扩展性。