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

Vue3理论速学

这是一份专为 2026 年 开发者准备的 Vue 3 理论速学指南。摒弃过时的 Vue 2 写法,直接切入现代 Vue 开发的核心(Composition API + <script setup>)。


🚀 一、核心思维转变:从“选项”到“组合”

特性 Vue 2 (Options API) Vue 3 (Composition API) 为什么变?
代码组织 按选项分类 (data, methods, mounted) 按逻辑功能分类 (所有关于“搜索”的代码在一起) 解决大组件逻辑分散问题,易于复用。
响应式原理 Object.defineProperty Proxy 性能提升巨大,支持数组/对象深层监听,无死角。
语法糖 <script setup> 代码更少,无需 return,原生支持 TypeScript。
状态管理 Vuex Pinia 更轻量,去除了 mutation,对 TS 支持完美。

💡 2026 年铁律:新项目必须使用 <script setup>Composition API


🛠️ 二、极速上手:5 个核心概念

1. 响应式数据 (Reactivity)

不再区分 data,而是主动声明哪些数据需要响应式。

  • ref: 用于基本数据类型 (String, Number, Boolean)。
    • 注意: JS 中访问需加 .value,模板中自动解包。
  • reactive: 用于对象/数组
    • 注意: 直接访问属性,无需 .value
<script setup>
import { ref, reactive } from 'vue'// 基本类型
const count = ref(0) 
const increment = () => count.value++// 对象类型
const user = reactive({ name: 'Alice', age: 25 })
const updateName = () => user.name = 'Bob'
</script><template><div><p>计数: {{ count }}</p> <!-- 模板中不用 .value --><p>用户: {{ user.name }}</p><button @click="increment">+1</button></div>
</template>

2. 计算属性与监听 (Computed & Watch)

逻辑复用神器,替代 methods 中的复杂计算。

import { computed, watch } from 'vue'// 计算属性:有缓存,依赖变了才重新算
const doubleCount = computed(() => count.value * 2)// 监听器:侧效应(如发请求、操作 DOM)
watch(count, (newVal, oldVal) => {console.log(`计数从 ${oldVal} 变成了 ${newVal}`)
})

3. 生命周期 (Lifecycle)

Vue 2 的 mounted 变成了 onMounted必须在 setup 中调用

import { onMounted, onUnmounted } from 'vue'onMounted(() => {console.log('组件已挂载,可以操作 DOM 了')
})onUnmounted(() => {console.log('组件销毁,清理定时器/事件监听')
})

常用钩子映射: createdsetup执行时, mountedonMounted, updatedonUpdated.

4. 组件通信 (Props & Emits)

<script setup> 中极其简洁。

<script setup>
// 1. 接收 Props (2026年新特性:直接解构,依然保持响应式!)
const { title, isActive } = defineProps({title: String,isActive: Boolean
})// 2. 定义 emits
const emit = defineEmits(['update', 'close'])const handleClick = () => {emit('update', '新数据')
}
</script>

5. 逻辑复用 (Composables) ⭐最重要⭐

这是 Vue 3 的灵魂。替代 Vue 2 的 Mixins。
创建一个函数 useMouse.js,在任何组件里调用它,就能获得鼠标逻辑。

// composables/useMouse.js
import { ref, onMounted, onUnmounted } from 'vue'export function useMouse() {const x = ref(0)const y = ref(0)const update = (e) => { x.value = e.pageX; y.value = e.pageY }onMounted(() => window.addEventListener('mousemove', update))onUnmounted(() => window.removeEventListener('mousemove', update))return { x, y } // 返回响应式数据
}// 在组件中使用
// const { x, y } = useMouse()

📦 三、2026 年标准技术栈

如果你现在搭建项目,请直接使用以下组合:

  1. 构建工具: Vite (秒级启动,基于 Rolldown/Rust,极快)。
    • 命令: npm create vue@latest
  2. 状态管理: Pinia (官方推荐,取代 Vuex)。
    • 特点:没有复杂的 mutation,只有 state, getters, actions
  3. 路由: Vue Router 4
    • 配合 Composition API 使用 useRouter()useRoute()
  4. CSS 方案:
    • Scoped CSS (<style scoped>)
    • Tailwind CSS (原子化 CSS,目前最流行)
    • UnoCSS (即时按需原子化引擎,Vite 生态首选)

⚡ 四、避坑指南 & 最佳实践

  1. 不要混用: 尽量全篇使用 <script setup>,不要在一个文件里混用 Options API 和 Composition API。
  2. Ref vs Reactive:
    • 初学者建议主要使用 ref。因为 ref 统一了基本类型和对象的访问方式(虽然对象要包一层),且重构时更安全(不会丢失响应性)。
    • 2026 趋势: 很多团队倾向于 "All Ref" 策略。
  3. Props 解构: 在 Vue 3.5+ 中,直接 const { name } = defineProps(...) 是安全的,不需要再用 toRefs 包装,这是巨大的语法简化。
  4. 异步组件: 使用 <Suspense> 处理异步依赖(如等待 API 数据加载再渲染组件)。

🎯 学习路线建议

  1. Day 1: 理解 ref, reactive, computed, watch
  2. Day 2: 掌握 <script setup> 语法,学会 propsemit
  3. Day 3: 学习 Composables (逻辑复用),尝试写一个 useFetchuseDarkMode
  4. Day 4: 整合 PiniaVue Router
  5. Day 5: 实战一个小项目(如 Todo List 或 天气查询),强制使用 Composition API。

Vue 3 的理论核心就是:“把逻辑拆分成函数,按需组合”。掌握了这一点,你就掌握了 Vue 3 的精髓。

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

相关文章:

  • 东方高端珠宝2026年新趋势:这些品牌不容错过,东方美学珠宝/东方高端珠宝/高端珠宝/东方秩序,东方高端珠宝定制怎么选择 - 品牌推荐师
  • 2026优质焊接协作机器人公司怎么选?盘点全球焊接协作机器人企业 - 品牌2026
  • 2026年膨胀螺栓公司权威推荐:非标异形件定制/304螺丝/316螺丝/不锈钢小螺丝/不锈钢螺丝/微型螺丝/选择指南 - 优质品牌商家
  • 2026和平区南开区别墅装修top6口碑推荐 别墅设计与别墅防水公司推荐 - 品牌智鉴榜
  • 2026应急启动电源供应链服务商推荐,安全认证与产品适配标准 - 品牌2026
  • 机械设备海外社媒代运营公司哪家好?储能海外营销代运营服务商+苏州外贸B2B营销服务商汇总 - 品牌2026
  • 优质石英玻璃厂家推荐指南:高透石英片/云母石英片/光学石英玻璃/定制石英片/异性石英片/石英片价格/石英片公司/选择指南 - 优质品牌商家
  • 2026年AI标书工具厂家推荐:中智标策AI智能标书生成助手,招投标全流程效率革命 - 品牌推荐官
  • 深度评测2026年船用防浪阀:哪些品牌值得信赖?船用空气管头/船用附件/船用安全阀/船用阀门附件,船用防浪阀厂家选哪家 - 品牌推荐师
  • 基于强化学习的倒立摆控制MATLAB实现(含DQN与PPO双算法对比)
  • Facebook推广获客服务商推荐!汽车海外推广获客公司+新能源海外营销代运营服务商合集 - 品牌2026
  • uptime kuma 轻量级监控工具
  • 利用tare生成编写测试用例的skill,针对小功能需求基本可用
  • 新鲜出炉!2026乳业饮品/医疗制药/电子半导体/化工/电力/村镇市政/应急/酒店商业水处理设备厂家推荐排行 专业评测榜 多行业适配 - 极欧测评
  • 2026年IATF16949认证汽车行业CNC加工厂家推荐:车企一级供应商质量与服务深度对标 - 余文22
  • Agent、Workflow、RAG 还是 Skill?
  • 会员充值、消费无记录,如何规范化管理会员资产? - 搭贝
  • FlashAttention-3 vs 朴素(基础)Attention:推理场景详细对比(FA3)
  • 2026深圳留学中介推荐:聚焦香港留学申请、香港本科申请、港前三本科申请 - 品牌2026
  • 闲置京东e卡别浪费!3种正规回收方法详解,新手也能轻松变现 - 京回收小程序
  • 2026年评价高的离心机公司推荐:卧式双级活塞推料离心机/卧式活塞推料离心机/卧式螺旋过滤离心机/实验室离心机/选择指南 - 优质品牌商家
  • CyberArcanum 赛博秘仪:当AI与塔罗相遇,我用代码重构了一场数字时代的占卜仪式
  • 2026年阿里企业邮箱服务电话是多少?最新客服热线对接指南 - 品牌2026
  • 测试管理工具选型:2026年10款主流系统性能与价格对比
  • 《计算机科学与应用》期刊推介征稿指南
  • 阿里企业邮箱服务商怎么选?2026年最新标准与优质服务商推荐 - 品牌2026
  • Spring Boot 快速入门指南:从零搭建 Web 应用,小白也能 1 小时上手开发
  • 美国高端留学中介推荐与美国本科高端定制留学中介推荐:详细介绍与选择指南 - 品牌2026
  • 阿里企业邮箱联系电话是多少2026最新版人工客服快速对接通道 - 品牌2026
  • Spring Boot 快速入门指南:从零搭建一个可运行的 Web 应用(编程小白友好版)