
Vue3初始化的最简模板,直接抄不用改
其实Vue3的最简项目,核心文件就3个:main.js
(项目入口)、App.vue
(根组件)、index.html
(HTML模板)。我帮你整理了每个文件的作用和最简代码,直接复制粘贴就能用——
文件名 | 作用 | 最简代码示例 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
main.js | 挂载Vue实例到HTML |
import { createApp } from ‘vue’; import App from ‘./App.vue’; // 不需要额外插件,最简就这三行 createApp(App).mount(‘#app’); |
|||||||||||||||
App.vue | 根组件,承载页面内容 |
{{ message }}
import { ref } from ‘vue’; |
|||||||||||||||
index.html | HTML容器,承载Vue实例 |
<!- 为什么要这么极简?我跟你说,刚开始学Vue3,重点是搞懂“响应式数据”“组件通信”这些核心逻辑,不是折腾配置文件。我之前帮朋友删了那些没用的插件后,他说“原来Vue3这么简单,之前是被配置吓到了”。真的,最简模板能帮你把注意力放在该放的地方。 初始化时最容易踩的3个坑,我帮你踩过了我做了3个Vue3项目,初始化时踩的坑能装一筐,挑最常见的3个给你讲,省得你再掉进去。 坑1:setup语法糖漏写,变量全是“隐身”的我第一次写Vue3组件时,犯了个超低级错误——把 Vue官网明确说,setup语法糖是“推荐的组件写法”,因为它能省掉 记住:写Vue3组件,第一行先打 坑2:ref和reactive用混,数据“死”了不更新我同事小王,刚开始用Vue3时,把所有数据都用 其实ref和reactive的区别特别好记: ref :用来包基本类型(字符串、数字,比如const age = ref(18) ),或者简单对象(比如const user = ref({ name: '张三' }) );reactive :用来包复杂对象/数组(比如const list = reactive([{ id: 1, name: '苹果' }]) )。关键是: 我自己的习惯是:基本类型用ref,复杂对象用reactive——这么分,半年没遇到过数据不响应的问题。 坑3:生命周期钩子用错,逻辑“跑错时间”我之前做一个“获取用户信息”的组件,想在组件挂载后发请求,结果用了 Vue3的生命周期钩子和Vue2对应关系要记清楚: created → Vue3的setup (因为setup在组件创建时就执行了);mounted → Vue3的onMounted (组件挂载后执行,适合发请求、操作DOM);updated → Vue3的onUpdated (组件更新后执行)。我帮你整理了个对应表,记不住就存手机里:
比如你要发请求,就用
我之前把 你按我给的模板搭项目,再避开这3个坑,基本上就能顺利启动Vue3项目了。我去年用这个方法帮3个朋友搭了项目,他们都说“比看官网管用”。要是你搭的时候遇到问题,或者有不懂的地方,评论区喊我,我帮你看看—— 踩过的坑,不想让你再踩一遍~ 你是不是刚启动Vue3项目,就看到终端弹出“Cannot find module ‘./App.vue’”的红报错?我之前帮楼下做前端的小吴调项目时,他也遇到过一模一样的问题——当时他急得直挠头,说“我明明没动路径啊”,结果我一看,好家伙,main.js里的App.vue路径多打了个“s”,变成“./Apps.vue”了。其实这种错看着吓人,本质都是小细节没注意到,我帮你拆成几步排查,肯定能解决。 先检查最基础的:main.js里引App.vue的路径对不对?App.vue得和main.js在同一个src目录下才行,要是你写的是“./App.vue”,那路径没毛病;可要是你把App.vue挪到了components文件夹里,路径就得改成“./components/App.vue”,差一个斜杠、多一个字母都不行。我之前有次手滑,把路径写成“../App.vue”(多了个点),结果折腾了五分钟才反应过来——相对路径的“./”是当前目录,“../”是上一级目录,可别搞反了,搞反了vite肯定找不到文件。 然后看你是不是用vite建的项目(现在Vue3基本都用vite,比webpack快多了)。要是你之前在vite.config.js里配置过别名,比如把“@”指向src目录(就是“resolve: { alias: { ‘@’: path.resolve(__dirname, ‘src’) } }”这种),那引App.vue的时候就得写“@/App.vue”,可别一边用别名一边写相对路径,vite根本识别不了。要是你没改过硬配置,这一步就跳过,不用瞎琢磨——毕竟最简模板本来就没这些花里胡哨的东西。 再试试重启开发服务器——我跟你说,这步特别玄学但管用!有时候dev服务跑久了会存缓存,你按Ctrl+C把服务停了,再重新输入npm run dev启动,说不定终端唰地一下就变绿了。我有次帮朋友调项目,他改了路径之后还是报错,结果重启之后直接好了,他说“这服务器怕不是睡着了”,哈哈,虽说是玩笑话,但缓存问题真的很常见。 要是以上都试了还不行,就打开项目根目录的package.json文件,看看scripts里的dev命令是不是“vite”。别笑,真有人会把Vue2的老命令“vue-cli-service serve”粘过来——那是Vue2用的vue-cli命令,vite根本不认啊!要是命令没错,就狠一点:把node_modules文件夹和package-lock.json文件全删了,重新npm install,把依赖包重新装一遍。有时候依赖包下载坏了也会导致路径报错,重新装一遍准没错——我之前就遇到过,node_modules里的vue包缺了个文件,结果引什么都报错,删了重装就好了。 其实这种“找不到模块”的错,本质都是“电脑没找到你说的文件”,要么是你指的路不对(路径错了),要么是电脑“失忆”了(缓存或依赖坏了)。你按我给的步骤一步步来,肯定能解决——我之前第一次遇到的时候,盯着路径看了十分钟才发现多打了个空格,你要是也犯了这种低级错误,可别不好意思,毕竟谁没踩过这种坑呢? 最简模板可以加TypeScript吗?怎么改?可以。只需3步: 初始化后想加Vue Router(路由)怎么弄?setup语法糖里怎么引入其他组件?直接import后就能用,不用额外注册。比如想引入HelloWorld组件: 最简模板的CSS样式怎么全局引入?两种方式: 最简模板运行报错“Cannot find module ‘./App.vue’”怎么办?大概率是路径写错了,检查3点: |