前言
尤大在 Vue 3.2 发布的时候已经在微博给出了最佳实践的解决方案:
<script setup>
+TS
+Volar
= 真香
Volar
是个 VS Code 的插件,其最大的作用就是解决了 template 的 TS 提示问题。
注意
使用它时,要先移除
Vetur
,以避免造成冲突。
<script setup>
是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。相比于普通的 script
语法,它具有更多优势:
- 更少的样板内容,更简洁的代码。
- 能够使用纯 Typescript 声明 props 和发出事件。
- 更好的运行时性能 (其模板会被编译成与其同一作用域的渲染函数,没有任何的中间代理)。
- 更好的 IDE 类型推断性能 (减少语言服务器从代码中抽离类型的工作)。
详见官方文档 单文件组件
Vite
也可以使用新的创建方式简化操作步骤
https://www.psvmc.cn/article/2024-08-01-vue3-vite.html
创建项目
Vite 是一个 web 开发构建工具,由于其原生 ES 模块导入方式,可以实现闪电般的冷服务器启动。
通过在终端中运行以下命令,可以使用 Vite 快速构建 Vue 项目。
查看npm版本
1 | npm -v |
创建项目
1 | # npm 6.x |
注意:
1 | # npm 7+,需要加上额外的双短横线 |
如果报错
Error: Cannot find module ‘worker_threads’
原因是:
Vite 需要 Node.js 版本 >= 12.0.0。
添加TS/vue-router等
安装 typescript、vue-router@next、axios、eslint-plugin-vue、less等相关插件
1 | npm install axios |
vite.config.ts
vite.config.js
重命名为vite.config.ts
1 | import { UserConfig } from 'vite' |
router
在 src 下新建 router
文件夹,并在文件夹内创建 index.ts
1 | import { createRouter, createWebHashHistory } from 'vue-router' |
views
src
下添加views
文件夹
添加Home.vue
1 | <script setup></script> |
src
下的App.vue
中添加<router-view></router-view>
1 | <script setup> |
ts 配置
项目根目录下新建 tsconfig.json
写入相关配置
1 | { |
src 目录下新建 types
文件夹,里面需要配置 ts 的类型
shims-vue.d.ts
1 | declare module '*.vue' {} |
images.d.ts
1 | declare module '*.svg' |
main.ts
src
下的main.js
重命名为main.ts
1 | import { createApp } from 'vue' |
index.html
1 |
|
主要是
1 | <script type="module" src="/src/main.js"></script> |
修改为
1 | <script type="module" src="/src/main.ts"></script> |