# Vite + Vue3 + Pinia + Vue-Router 项目分析
---
> 该项目来自[CSDN 的 前端大斗师](http://t.csdn.cn/SnJbg)的一个dome Project。这个项目对于初学Vite + Vue3、自学Vite+Vue3、拥有Vue2或Vue3一定知识想尝试官方建议的Vite脚手架的小伙伴,是一个不错的项目模板。
### 前言
该分析是本人在自学中,所分析的结果。仅是本人学习中的一种记录📝。可以用于参考,有不对的地方,请多多指教。
---

这是用WebStorm 打开项目的目录结构。
---
分析:
.env 、.env.prod、.gitignore的文件就不过多余的解释了。用来配置项目的环境和git的相关文件。
package.json 是配置项目的配置文件。【主要用来执行框架的和存放开发中所用的包。】
vite.config.js 是配置Vite脚手架的配置文件。【主要实例Vue3 和导入 开发常用的插件。】
Main.js 是vite+ vue3 的主要的核心。这用来创建vue3的。但具体的实例过程是交付给Vite脚手架实例化的,而脚手架的实例化过程可以看看里面的内容。【以及定义全局属性的地方】
其余的文件就挨个分析。
----
#### Views 文件夹:
主要存放Vue的组件【视图】
目录结构:

admin 是 存放 管人员的;home 是存放用户的;List 是表单的;Login 是登录界面;NotFound是错误界面的;

这是展开的结果。
唔~感觉这个划分应该可以优化一下。但这可能是博主的开发习惯。我比较习惯于;组件+页面+角色 的方式来划分。不做过多评价。
首先看Login 界面的代码:
```vue
// index.vue
```
从该代码中结合前面的项目结构,可以联想到整项目的界面仿佛像是一个卡槽。只要通过功能文件夹下的component的组件进行插入,这样的好处是在后面维护中,可以快速替换某个区域的功能。
从代码中看出,这里是通过一个emit的事件方式来获取子组件所传过来的数据。
```vue
通过事件方式传递数据。
```
调用了LoginEmit 的函数接收到的form 数据对象,并对form对象进行了过滤,和判断数据的是否存在,以及校验密码的是否正确的一系列操作后,通过Store的SAVE_USER_MESSAGE的函数进行存入到Store中。同理的