以下是 Vue3 前端开发者常犯的 6 大典型错误及解决方案:
常见错误:
ref 和 reactive 的使用场景reactive 对象属性(应使用 Object.assign)// 错误示例
const state = reactive({ count: 0 })
const { count } = state // 解构后失去响应性
// 正确做法
const count = ref(0)
const state = reactive({ count })
// 或使用 toRefs
const state = reactive({ count: 0 })
const { count } = toRefs(state)
常见错误:
setup() 中使用 Options API 的钩子命名(如 mounted)onUnmounted 清理副作用// 错误示例
setup() {
mounted(() => { /* ... */ }) // 应该用 onMounted
}
// 正确做法
import { onMounted } from 'vue'
setup() {
onMounted(() => {
const timer = setInterval(...)
onUnmounted(() => clearInterval(timer)) // 清理逻辑
})
}
常见错误:
props 传递深层数据v-model 语法糖在 Vue3 中的变化(modelValue + update:modelValue)// 子组件
props: ['modelValue'],
emits: ['update:modelValue']
// 父组件
<Child v-model="value" />
常见错误:
setup() 中// 错误示例
if (condition) {
onMounted(...) // 必须放在顶层
}
// 正确做法:按功能拆分逻辑
useUserAPI()
useDataFetching()
常见错误:
v-for 不使用 key 或使用索引当 keywatch(fn, { deep: true }) 导致性能损耗v-memo 优化静态列表// 优化示例
<div v-for="item in list" :key="item.id" v-memo="[item.id]">
{{ item.content }}
</div>
常见错误:
推荐结构:
/src
/components // 基础组件
/composables // 可复用逻辑
/views // 路由组件
/stores // 状态管理
<script setup> 语法糖提升代码简洁度defineProps/defineEmits 进行明确的组件接口声明理解这些常见问题并遵循 Vue3 的设计模式,可以显著提升代码质量和开发效率。
热门推荐:
0