首页 > 编程知识 正文

Vue TS工程结构用法介绍

时间:2023-11-20 15:30:15 阅读:292659 作者:MUYU

在本篇文章中,我们将从多个方面对Vue TS工程结构进行详细的阐述,涵盖文件结构、路由配置、组件间通讯、状态管理等内容,并给出对应的代码示例。

一、文件结构

一个好的文件结构可以极大地提高工程的可维护性和可扩展性。下面是一个经典的Vue TS工程结构:

    src/
    ├── assets/        # 静态资源文件夹
    ├── components/    # 公共组件文件夹
    ├── pages/         # 页面文件夹
    ├── router/        # 路由配置文件夹
    ├── store/         # 状态管理文件夹
    ├── utils/         # 工具函数文件夹
    ├── App.vue        # 根组件
    └── main.ts        # 入口文件

其中,assets文件夹中存放项目的静态资源文件,如图片、样式文件等;components文件夹中存放公共组件;pages文件夹中存放页面组件;router文件夹中存放路由配置文件;store文件夹中存放状态管理文件;utils文件夹中存放工具函数文件;App.vue是整个应用的根组件,main.ts是应用的入口文件。

下面给出一个简单的例子:

    src/
    ├── assets/
    │   └── logo.png
    ├── components/
    │   ├── Button.vue
    │   ├── Input.vue
    │   └── ...
    ├── pages/
    │   ├── Home.vue
    │   ├── About.vue
    │   └── ...
    ├── router/
    │   └── index.ts
    ├── store/
    │   ├── index.ts
    │   ├── actions.ts
    │   ├── types.ts
    │   └── mutations.ts
    ├── utils/
    │   ├── api.ts
    │   └── utils.ts
    ├── App.vue
    └── main.ts

二、路由配置

在Vue TS工程中,路由配置的常用工具是Vue Router。下面是一个路由配置的示例:

    import Vue from 'vue';
    import Router from 'vue-router';

    // 路由懒加载
    const Home = () => import('@/pages/Home.vue');
    const About = () => import('@/pages/About.vue');

    Vue.use(Router);

    const router = new Router({
        mode: 'history',
        routes: [
            {
                path: '/',
                name: 'home',
                component: Home,
            },
            {
                path: '/about',
                name: 'about',
                component: About,
            },
        ],
    });

    export default router;

上面的代码中使用了路由懒加载的方式,这样可以减小打包后的文件体积,提高页面加载速度。在路由配置中,我们可以指定页面的路径、路由名称以及对应的组件。

三、组件间通讯

在Vue TS工程中,组件间通讯可以通过props、事件派发和Vuex等方式实现。下面是一个props和事件派发的使用示例:

    Vue.component('child-component', {
        props: {
            msg: String,
        },
        template: `
            
                

{{ msg }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。