当前位置: 首页 > news >正文

从零到项目上线:一张思维导图吃透 Vue3 全家桶

目录

前置知识速刷(30 min 过一遍)

1.1 JavaScript 高频考点

1.2 ES6 基础(Vue3 默认语法)

1.3 flex 布局思维导图(边学边用)

2. Vue 实例:从「Hello World」到「数据驱动」

3. 模板语法三剑客:指令 + 计算属性 + 监听器

4. 组件化:把「页面」拆成「乐高」

4.1 组件通信 1-2-3

4.2 插槽 = 组件「占位符」

5. Vue CLI:从「单文件」到「工程化」

5.1 三件套

5.2 构建流程图

6. 路由:单页应用「导航骨架」

6.1 路由表

6.2 传参与取值

7. Axios:前后端「胶水」

7.1 封装实例

7.2 跨域三板斧

8. 课堂实操:把「截图」跑成真实项目

8.1 需求还原(对应 9.1 案例截图)

8.2 核心代码(已开源)

8.3 性能彩蛋

9. 思维导图大合集(可右键保存)


前置知识速刷(30 min 过一遍)

1.1 JavaScript 高频考点

  • 装箱 / 拆箱
    为什么[] == ![]为 true?先隐式装箱再转数字

  • 事件循环
    setTimeout → 宏任务,Promise.then → 微任务,面试常问执行顺序

  • 垃圾回收
    新生代副回收器(Scavenge)+ 老生代主回收器(标记清除),避免内存泄漏需及时解除事件监听

1.2 ES6 基础(Vue3 默认语法)

表格

复制

特性代码片段在 Vue 中的用途
let / constconst API = ref()模板响应式
解构const { id } = route.params路由取参
箭头函数onMounted(() => {})生命周期
模板字符串`https://api.xxx/${id}`Axios 拼接地址
Promiseaxios.get().then()异步请求
模块化import Row from '@/components/Row.vue'单文件组件

以上 6 句代码,在后续实战会出现 ≥ 20 次,先背再敲

1.3 flex 布局思维导图(边学边用)

Text

复制

flex-container ├─ justify-content 主轴 │ ├─ flex-start | center | space-between ├─ align-items 交叉轴 │ ├─ stretch | center | flex-end ├─ flex-wrap │ ├─ wrap ⇒ 自适应换行 └─ flex ├─ 1 ⇒ 占剩余空间

课堂实操「文章列表」两栏自适应,核心代码就两行:

css

复制

.list { display: flex; flex-wrap: wrap; } .card { flex: 1 1 300px; } /* 最小 300,自动填充 */

2. Vue 实例:从「Hello World」到「数据驱动」

HTML

预览

复制

<div id="app"> <h1>{{ msg }}</h1> <button @click="reverse">反转</button> </div> <script type="module"> import { createApp } from 'vue' createApp({ data() { // 3.3 data 对象 return { msg: 'Hello Vue3' } }, methods: { // 3.4 methods reverse() { this.msg = this.msg.split('').reverse().join('') } } }).mount('#app') </script>

本章考点:

  1. data必须是函数返回对象,保证组件多实例隔离

  2. 事件修饰符.stop/.prevent别滥用,优先在 JS 里处理


3. 模板语法三剑客:指令 + 计算属性 + 监听器

表格

复制

需求写法备注
列表渲染v-for="item in list" :key="item.id"key 用 id 别用 index
双向绑定v-model.trim="keyword".trim去首尾空格
条件渲染v-if="total > 0"高频切换用v-show
样式绑定:class="{ active: isActive }"对象写法最直观
计算属性total() { return nums.reduce(...) }有缓存,依赖不变不走函数
监听器watch(page, fetchList)分页场景必备

4. 组件化:把「页面」拆成「乐高」

4.1 组件通信 1-2-3

  1. 父 → 子:props + 校验

JavaScript

复制

// 父 <Row v-for="item in list" :data="item" /> // 子 props: { data: { type: Object, required: true } }
  1. 子 → 父:自定义事件

JavaScript

复制

// 子 <button @click="$emit('del', data.id)">删除</button> // 父 <Row @del="handleDel" />
  1. 跨层级:依赖注入(可选)

JavaScript

复制

provide('reload', reload) inject('reload')

4.2 插槽 = 组件「占位符」

vue

复制

<!-- 父 --> <Card> <template #header>封面图</template> <template #default>正文</template> </Card> <!-- 子 --> <div class="card"> <header><slot name="header"/></header> <main><slot/></main> </div>

5. Vue CLI:从「单文件」到「工程化」

5.1 三件套

  • @vue/cli– 脚手架

  • @vue/cli-service– 内置 webpack + devServer

  • vue-router/pinia– 官方插件一键装

5.2 构建流程图

Text

复制

npm create vue@latest ├─ vite.config.ts # 5.3 环境变量 ├─ src/api/ # Axios 封装 ├─ src/router/ # 路由表 ├─ src/components/ # 通用组件 └─ src/views/ # 页面级组件

6. 路由:单页应用「导航骨架」

6.1 路由表

TypeScript

复制

const routes = [ { path: '/', component: () => import('@/views/Home.vue') }, { path: '/detail/:id', name: 'detail', component: Detail } ]

6.2 传参与取值

JavaScript

复制

// 跳转 router.push({ name: 'detail', params: { id: 42 } }) // 接收 const route = useRoute() const id = computed(() => route.params.id) // 响应式

7. Axios:前后端「胶水」

7.1 封装实例

TypeScript

复制

const http = axios.create({ baseURL: import.meta.env.VITE_API_URL, // 5.3 环境变量 timeout: 8000 }) // 拦截器 http.interceptors.response.use( res => res.data, err => { ElMessage.error(err.response?.data?.msg || '网络错误') return Promise.reject(err) })

7.2 跨域三板斧

  1. dev 阶段:vite 代理

TypeScript

复制

server: { proxy: { '/api': 'http://localhost:3000' } }
  1. 生产阶段:Nginx 反向代理

  2. 终极方案:后端加Access-Control-Allow-Origin


8. 课堂实操:把「截图」跑成真实项目

8.1 需求还原(对应 9.1 案例截图)

  • 文章列表 + 分页

  • 删除二次确认

  • 顶部搜索 + 分类筛选

  • 响应式两栏(flex 实现)

8.2 核心代码(已开源)

bash

复制

git clone https://github.com/yourname/vue3-es6-boilerplate cd vue3-es6-boilerplate pnpm i pnpm dev

8.3 性能彩蛋

  • 列表虚拟滚动(vue-virtual-scroller

  • 组件异步加载(defineAsyncComponent

  • 首屏骨架屏(vite-plugin-skeleton


9. 思维导图大合集(可右键保存)

  1. ES6 速查表

  2. flex 布局一图流

  3. Vue3 组件通信图

  4. 路由传参决策树

  5. Axios 封装流程图

高清原图放 GitHub/docs目录,直接打印贴墙

http://www.jsqmd.com/news/1044985/

相关文章:

  • 2026年 北京防水堵漏/楼顶防水/外墙防水/卫生间防水/管道测漏/精准测漏榜单:专业施工与隐蔽工程口碑之选 - 品牌发掘
  • 2026厦门防水补漏维修团队实测盘点TOP4:厦门业主房屋渗漏修缮靠谱选择 - 宅安选房屋修缮
  • 2026年滁州GEO服务商代理加盟选型靠谱推荐丨滁州GEO优化公司代理服务商怎么选? - 企业新闻快传
  • 2026昆山玉山镇防水工程厂家适配指南:昆山鼎壹万防水补漏公司专业方案测评与行业服务商解析 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 2026昆山防水补漏服务商适配指南:昆山鼎壹万防水补漏公司及本地优质服务商深度解析 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 打造你的“开发战斗机”:VS Code 扩展推荐指南(从入门到入土版)
  • 深圳家电维修平台推荐:本地实测较好的几家服务商深度对比——2026年6月最新发布 - 一步到家
  • NSK高速精密滚珠丝杠PSS1520技术详述
  • 杭州家电维修平台推荐:本地用户反馈较好的几家服务商深度实测对比——2026年6月最新发布 - 一步到家
  • 2026苏州防水服务商适配指南:昆山鼎壹万防水补漏公司与区域品牌实力深度解析 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 2026优选镇海汽配厂短视频GEO排名服务商实测评测对比 - 起跑123
  • MATLAB与STK联合仿真实战:批量生成高精度TLE轨道星历
  • 20260619 之所思 - 人生如梦
  • Headroom:让 AI Agent「吃得少、营养好」的开源上下文压缩神器
  • 宁波汽车音响改装新选择:宁波乾音汽车音响旗舰店,三大核心优势揭秘,理想原车音响升级/音响改装,音响改装品牌有哪些 - 音响改装门店分享
  • MPC5200嵌入式处理器:架构解析、外设集成与系统设计实战
  • 2026昆山外墙渗水维修服务市场深度洞察及昆山鼎壹万等3家服务商适配推荐 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 湖南二战考研机构怎么选?考研学员家长认准长沙博闻考研,靠谱正规更安心 - 长沙考研集训营
  • MC9S12XE外部总线接口(XEBI)配置、时序与调试全解析
  • 2026小程序开发费用全解析:3种方式对比,选对少花50%冤枉钱
  • ARM9微控制器LPC2917/19架构解析:总线、存储与低功耗设计实战
  • 鸣潮自动化终极指南:如何用ok-ww解放双手,每天节省2小时游戏时间
  • AD7606 FFT 频谱分析 FPGA 设计 Verilog Vivado VHDL
  • 设计模式系列文章(基础篇第30篇):观察者模式——对象联动通知,解耦依赖关系
  • 苏州家具安装推荐良匠千艺2026口碑榜 - 我叫一
  • 2026昆山防水修缮案例适配指南:以鼎壹万为核心的本地服务商场景化专业解析 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 2026年卫生间隔断工厂综合盘点:传炼装饰工程成为工装项目首选
  • MCP(Model Context Protocol)入门与实践:让 AI 真正连接你的工具链
  • 2026昆山屋顶防水市场深度分析与服务商适配推荐:聚焦本地需求的优质选择 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • VRT:视频复原Transformer——原理深度解析与技术实现