嵌套 v-model 解决 Unexpected mutation of “XXX” prop vue/no-mutating-props
我们在进行 Vue 开发的时候,经常会遇到一些对可使用 v-model 的组件包装嵌套的需求,但若使用不慎,就会引发 vue/no-mutating-props 的问题。本文将记录一种在 v-model 嵌套时的做法,以避免这个问题。
本文使用 Vue 3 语法。
1. 问题复现
我们以 Naive UI 框架库中的 NDrawer 组件 为例,这个组件可以通过 v-model:show="" 的方式控制抽屉的开关:

不过我们需要对这个组件进行二次封装来满足更多的需求,我的封装代码如下:

我们可以发现报错如下(需要安装 ESLint 插件,VSCode 才会显示行内错误):<

本文介绍了在Vue开发中遇到的`Unexpected mutation of "XXX" prop`问题,特别是在使用嵌套v-model时。通过分析v-model的工作原理,解释了为什么直接在子组件中修改prop会导致错误。解决方案是使用计算属性作为中间变量,以保持单向数据流。文章提供了一个具体的例子,展示如何正确地将v-model应用于组件内部的深层组件。
最低0.47元/天 解锁文章

2116

被折叠的 条评论
为什么被折叠?



