📝 main.ts 用到的 全部语法清单
(按出现顺序分类,Vue3 + TS + ES6+)
一、ES6+ 模块化语法(最基础)
ts
import { xxx } from 'xxx'
import xxx from 'xxx'
作用 :导入文件、库、工具出现位置:文件最顶部一大堆 import
二、ES6+ 对象解构语法
ts
import { createApp } from 'vue'
import { setupNaive, setupDirectives... } from '@/plugins'
作用 :从模块里只拿需要的东西 属于:ES6 基础语法
三、async /await 异步语法(核心)
ts
async function appInit()
await router.isReady()
作用 :等待路由加载完成,再挂载页面属于 :ES2017 异步语法意义:保证页面加载顺序不乱
四、function 函数定义
ts
async function appInit() { ... }
作用:把启动逻辑封装成函数
五、const 常量声明
ts
const goAppProvider = createApp(GoAppProvider)
const app = createApp(App)
作用 :创建不可修改的变量属于:ES6 语法
六、createApp Vue3 创建实例语法
ts
const app = createApp(App)
作用:创建 Vue 应用实例(Vue3 唯一写法)
七、app.use () 安装插件
ts
app.use(i18n)
作用:给 Vue 安装功能(国际化、状态库、路由等)
八、app.mount () 挂载语法
ts
app.mount('#app', true)
goAppProvider.mount('#appProvider', true)
作用 :把 Vue 实例挂载到页面 DOM 上 → 项目活了
九、window 全局赋值
ts
window['$vue'] = app
作用:把 Vue 实例挂到全局,方便任何地方调用
十、then 链式调用
ts
appInit().then(() => {
initFunction()
})
作用:启动完成后,再执行初始化函数
十一、TypeScript 类型文件支持
虽然这里没写类型,但 .ts 后缀本身就是:TypeScript 语法能让代码更稳定、提示更强。
十二、app 实例方法链式调用
ts
setupNaive(app)
setupDirectives(app)
setupStore(app)
setupRouter(app)
这些都是把 app 实例传入函数 ,完成全局注册。属于 函数传参语法 + Vue3 插件式编程
🎯 最核心的 5 个语法(必须记住)
- import / export → 模块化
- const → 定义变量
- async / await → 异步等待
- createApp → Vue3 创建应用
- app.mount → 挂载页面
这 5 个就是 main.ts 的灵魂。
📌 一句话总结
这份 main.ts 就是:ES6 模块化 + async 异步 + Vue3 实例创建 + 全局挂载 + TypeScript 的标准启动模板。
我直接用人体结构 + 逐行语法拆解 给你讲透这个 App.vue!它就是 Vue 项目的身体本体 + 皮肤 + 骨架,超级关键!
🧍♂️ 一、人体结构对应(超形象)
表格
| 代码部分 | 人体部位 | 作用 |
|---|---|---|
<n-config-provider> |
全身皮肤 + 外貌系统 | 控制全局主题、暗黑模式、语言 |
<go-app-provider> |
大脑中枢 + 全局消息 | 负责弹窗、提示、全局状态 |
<router-view> |
身体躯干 + 四肢 | 页面内容在这里显示,相当于 "身体" |
<I18n> |
嘴巴 + 语言系统 | 切换中文 / 英文 |
setup |
大脑思考区 | 所有逻辑、数据都在这里处理 |
一句话:App.vue = 项目的 "身体外壳",所有页面都长在它里面!
📝 二、里面用到的全部语法(新手必看)
我给你分好类,全部对应你刚才背的速查表,一看就懂!
1. 模板语法(HTML 里的 Vue 语法)
① 双标签组件
html
预览
<n-config-provider>...</n-config-provider>
像 HTML 标签一样使用 Vue 组件。
② 绑定属性 : (v-bind 简写)
html
预览
:theme="darkTheme"
:locale="locale"
**语法:v-bind 缩写 :**作用:把 JS 变量绑定到组件属性上。
③ 路由插槽 <router-view>
html
预览
<router-view />
Vue 路由核心语法:页面显示的位置。
2. 脚本语法(最重点)
① <script lang="ts" setup>
html
预览
<script lang="ts" setup>
Vue3 组合式 API 核心语法!
lang="ts":使用 TypeScriptsetup:Vue3 最新写法,自动导出变量 / 函数
② 导入语法 import
ts
import { NConfigProvider } from 'naive-ui'
import { useDarkThemeHook } from '@/hooks'
ES6 模块化,和 main.ts 一样。
③ 解构赋值
ts
const { locale, dateLocale } = useLang()
ES6 语法:一次性拿多个返回值。
④ 常量声明 const
ts
const darkTheme = useDarkThemeHook()
定义变量,项目最常用。
⑤ 自定义 Hook 调用(企业级写法)
ts
const darkTheme = useDarkThemeHook()
const overridesTheme = useThemeOverridesHook()
const hljsTheme = useCode()
const { locale, dateLocale } = useLang()
Vue3 组合式 Hook 语法把逻辑拆分,让代码更干净。
⑥ 注释语法
ts
// 暗黑主题
TS / JS 注释。
🎯 三、这个文件到底在干嘛?(精简总结)
- 最外层套全局主题皮肤(暗黑 / 明亮)
- 套全局消息提供者(弹窗、提示)
- 套国际化语言(中文 / 英文)
- 留一个坑给路由页面显示 (
<router-view>)
它就是一个 "外壳",所有页面都装在它里面!
✅ 四、你必须记住的 6 个核心语法
<script setup>------ Vue3 必用:属性------ 绑定数据import------ 导入const------ 定义变量useXxx()------ Hook 函数<router-view>------ 页面容器
🔥 一句话定位
vite.config.ts = 人体的「基因蓝图 + 生长规则」 它不参与页面显示,但决定项目怎么运行、怎么打包、路径怎么找、用什么插件 。相当于:人怎么长、长多高、穿什么衣服、用什么器官,全靠它定义。
🧍♂️ 一、人体结构对应(超形象)
表格
| 代码 | 人体部位 | 作用 |
|---|---|---|
defineConfig |
基因总纲 | Vite 配置的固定格式 |
server |
呼吸系统 | 控制项目启动端口、是否自动打开 |
resolve → alias |
神经系统(指路) | 让 @ 指向 src,快速找文件 |
plugins |
全身器官库 | 加载 Vue、Mock、代码编辑器、压缩插件 |
css |
皮肤系统 | 全局自动注入样式 |
build |
生殖 / 发育系统 | 项目打包、压缩、优化、生成最终文件 |
📝 二、里面用到的全部语法(全部对应你背过的速查表)
1. 最基础:ES6 模块化 import
ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
作用:导入需要的模块、工具、插件。
2. 函数定义 + TypeScript 类型
ts
function pathResolve(dir: string) {
return resolve(process.cwd(), '.', dir)
}
dir: string→ TS 类型语法- 作用:封装一个路径解析函数,简化路径写法
3. 对象导出(模块化核心)
ts
export default defineConfig({ ... })
作用:把配置对象导出,让 Vite 读取。
4. 配置对象语法(JSON 风格)
ts
export default defineConfig({
base: '/',
server: { ... },
resolve: { ... },
css: { ... },
plugins: [ ... ],
build: { ... }
})
项目配置的主体结构。
5. 箭头函数 / 普通函数
ts
isCustomElement: tag => tag.startsWith('iconify-icon')
ES6 箭头函数,简化代码。
6. 数组 + 对象嵌套
ts
alias: [
{ find: '@', replacement: pathResolve('src') }
]
配置路径别名。
7. 常量 / 变量导入
ts
import { OUTPUT_DIR, ... } from './build/constant'
从外部文件导入配置常量。
8. 插件调用函数
ts
vue(),
viteMockServe({ ... }),
viteCompression({ ... })
调用插件并传入参数,给项目 "安装功能"。
🎯 三、这个文件到底在干嘛?(精简总结)
- 设置启动端口 3020,自动打开浏览器
- 让
@等于src,方便导入文件 - 自动注入全局 SCSS 样式,不用每个页面都引
- 安装插件:Vue、Mock(假数据)、代码编辑器、Gzip 压缩
- 配置打包规则:输出目录、压缩、代码分割
✅ 四、你必须记住的 6 个核心语法
import------ 导入export default------ 导出function------ 函数alias: { find: '@' ... }------ 路径别名plugins: []------ 插件数组server: { port: 3020 }------ 服务配置
💡 超级好记的比喻
- main.ts = 生命启动
- App.vue = 身体外壳
- vite.config.ts = 基因蓝图
你已经看完了 Vue 项目三大核心顶层文件 !现在整个项目的头、身体、基因你都懂了!