Vue3开发技巧大全:从入门到精通的实用指南

更新日期: 2026-04-12 阅读: 47 标签: 技巧

这篇文章整理了日常开发中高频使用的Vue3技巧,涵盖语法、组件、工具和性能优化。代码可以直接复制使用,帮你减少冗余代码。


一、语法糖:少写代码,少踩坑

1. 自动导入

用unplugin-auto-import插件,不用手动导入ref、reactive、computed、watch、useRoute这些API,直接就能写。

<script setup>
// 不用写 import { ref, computed } from 'vue'
const count = ref(0)
const double = computed(() => count.value * 2)
</script>

2. defineProps简写

TypeScript环境下,不用重复写类型,直接用TS类型声明props。

<script setup lang="ts">
// 旧写法
const props = defineProps<{
  title: string
  list?: number[]
}>()

// 更简洁的写法:直接解构加默认值
const { title = '默认标题', list = [] } = defineProps<{
  title?: string
  list?: number[]
}>()
</script>

3. defineEmits简写

<script setup>
// 一行就能声明事件
const emit = defineEmits<{
  change: [id: number]
  close: []
}>()

// 直接使用
emit('change', 123)
</script>

4. v-model简化

不用分别写props和emit,一行就能实现父子双向绑定。

子组件:

<script setup>
const props = defineProps<{ modelValue: string }>()
const emit = defineEmits<['update:modelValue']>()
</script>

父组件:

<template>
  <Child v-model="form.name" />
</template>


二、组件复用:告别重复代码

1. 组合式函数抽离逻辑

把表单、请求、弹窗这些逻辑抽成useXxx,所有页面都能复用。

// useCount.js
import { ref } from 'vue'

export function useCount() {
  const count = ref(0)
  const add = () => count.value++
  
  return { count, add }
}

// 页面中使用
const { count, add } = useCount()

2. 动态组件加keep-alive缓存

不用写很多v-if,切换组件时自动缓存状态。

<template>
  <!-- 不缓存 -->
  <component :is="activeComp" />
  
  <!-- 缓存组件状态 -->
  <keep-alive>
    <component :is="activeComp" />
  </keep-alive>
</template>

3. 自定义指令简化DOM操作

封装自定义指令,替代重复的document.getElementById。

// 自动聚焦指令
app.directive('focus', {
  mounted(el) { el.focus() }
})

// 使用
<input v-focus />


三、开发效率:少调试,快运行

1. 模板里直接用props和emit

模板里不用另外定义变量,直接就能用。

<template>
  <div>{{ $props.title }}</div>
  <button @click="$emit('close')">关闭</button>
</template>

2. 批量绑定属性

用v-bind可以一次绑定多个属性。

<template>
  <input v-bind="{ placeholder: '请输入', disabled: true, maxlength: 10 }" />
</template>

3. 样式穿透修改UI库样式

修改Element Plus或Ant Design组件样式时,不用加important。

<style scoped>
:deep(.el-input__inner) {
  border-color: #ccc;
}
</style>

4. 全局组件自动注册

用unplugin-vue-components插件,组件不用手动import,直接用。

<template>
  <!-- 不用写 import Card from '@/components/Card.vue' -->
  <Card />
</template>


四、性能优化和调试:代码更稳更快

1. 变量解构不丢失响应式

用toRefs可以保证解构后的变量依然是响应式的。

const state = reactive({ name: '张三', age: 18 })

// 正确做法:解构后依然保持响应式
const { name, age } = toRefs(state)

2. 计算属性有缓存比方法快

<template>
  <!-- 慢:每次渲染都会重新执行 -->
  <div>{{ getFullName() }}</div>
  
  <!-- 快:依赖没变就会用缓存 -->
  <div>{{ fullName }}</div>
</template>

3. 控制台快速调试

把应用实例挂载到全局,浏览器控制台可以直接调试。

// main.ts
app.config.globalProperties.$vm = app

// 浏览器控制台直接用
$vm.$route
$vm.$store

4. 强制刷新组件

通过改变key值来强制刷新组件。

<template>
  <Child :key="refreshKey" />
</template>

<script setup>
const refreshKey = ref(0)

// 调用这个方法就能刷新组件
const refresh = () => refreshKey.value++
</script>


五、工具链推荐

VSCode插件方面,推荐安装Volar和Vue 3 Snippets,这两个对代码补全很有帮助。

包管理工具建议用pnpm代替npm,安装速度快3倍。

开发服务器用vite代替webpack,热更新几乎是秒开。

代码格式化用prettier加eslint,可以自动规范代码。


总结

多用自动导入和defineProps、defineEmits的简写写法,能减少不少模板代码。

逻辑尽量抽成use开头的组合函数,复用率能拉满。

v-model、v-bind、:deep这些是日常最高频的简化语法,多用就对了。

配合Volar和Vite,开发体验会好很多。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/13607

相关推荐

20个让你效率更高的CSS代码技巧

在本文中,我们想与您分享一个由各大CSS网站总结推荐的20个有用的规则和实践经验集合。有一些是面向CSS初学者的,有一些知识点是进阶型的。希望每个人通过这篇文章都能学到对自己有用的知识

微信小程序分享到朋友圈方法与技巧

小程序提供onShareAppMessage 函数,此函数只支持分享给我微信朋友,小程序如何分享到朋友圈呢?使用canvas绘制一张图片,并用wx.previewImage预览图片,然后长按图片保存图片到手机。

小技巧:检查你本地及公共 IP 地址

本地的 IP 地址是分配给你计算机上的内部硬件或虚拟网卡的本地/私有 IP 地址。根据你的 LAN 配置,上述 IP 地址可能是静态或动态的。公共的 IP 地址是你的 Internet 服务提供商(ISP)为你分配的公共/外部 IP 地址。

前端新手程序员不知道的 20个小技巧

前端新手程序员不知道的 20个小技巧:作为前端开发者,使用双显示器能大幅提高开发效率、学编程最好的语言不是PHP,是English、东西交付之前偷偷测试一遍、问别人之前最好先自己百度,google一下、把觉得不靠谱的需求放到最后做,很可能到时候需求就变了...

12 个 CSS 高级技巧汇总

使用 :not() 在菜单上应用/取消应用边框;给body添加行高;所有一切都垂直居中;逗号分隔的列表;使用负的 nth-child 选择项目;对图标使用SVG;优化显示文本;对纯CSS滑块使用 max-height;继承 box-sizing

探讨Js奇技淫巧

Js 是一门灵活的语言(手动滑稽)。应该多学习一些奇技淫巧,因为很多奇技淫巧往往代表一些混合的知识,往往会有一些新奇的思考与体验(怎么我想不出来?)

提高网站加载速度的一些小技巧

为你网站的用户留下良好的第一印象是非常必要的。随着商业领域的竞争,拥有一个吸引人的网站可以帮助你脱颖而出。研究表明,如果加载时间超过3秒,会有 40% 的用户放弃访问你的网站

去除桌面快捷方式上的小箭头

电脑桌面上默认快捷方式左下角是有个小箭头的。很多用户可能不习惯快捷方式小箭头。那怎么去掉呢?新建一个TXT文档(文档的名称自己顺便命名即可),然后把下面的这些英文全部复制到TXT文档内保存。把TXT文档的扩展名改成 .bat

微信小程序技巧_你需要知道的小程序开发技巧

一直以来进行了比较多的微信小程序开发... 总会接触到一些和官方组件或 api 相关或其无法解决的需求,于是决定在这里小小的整理一下微信小程序开发的一些技巧

26 个 jQuery使用技巧

禁用右键点击;禁用搜索文本框;新窗口打开链接;检测浏览器;预加载图片;样式筛选;列高度相同;字体大小调整;返回页面顶部;获取鼠标的xy坐标;验证元素是否为空;替换元素

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!