Vue自定义v-model和其修饰符的内部机制

v-model 是一个重要的双向绑定语法糖。

然而,当我们使用自定义组件的v-model,或者如 Naive UI 的输入框组件(v-model:value),并试图使用 v-model.trim 或者 v-model:value.trim 修饰符时,会发现它并不起作用。

一起深入 NaiveUi,Vue源码看看怎么回事?

自定义 v-model 中的修饰符问题

失焦后空格还是存在。

查看NaiveUinInput组件源码。发现就是简单的自定义v-model

Vue.js 官方文档的说法

vue官网对自定义v-model后的修饰符并没有说会失效。只说了可以获取到修饰符。

Vue.js 官方演练场的编译结果

去vue官方演练场看看编译后的结果:

play.vuejs.org

发现自定义v-model 真的就是一个简单的语法糖。没有看到任何对修饰符的处理

看下vue内置的v-model

可以看到在input上使用 vue内置的 v-model 被编译后 使用了指令vModelText

到源码找到这个指令vModelText。看到是在这里对修饰符trim做的处理。
扩展一下吧,组件内部实现v-model,这个应该经常用到:

结论

在vue中,v-model添加修饰符只有在原生的input、textarea中生效。

对于第三方组件库得具体看它们自己有没有对修饰符处理。

v-model的内置修饰符:.lazy .number .trim

相关推荐
用户81274828151202 分钟前
安卓Settings值原理源码剖析存储最大的字符数量是多少?
前端
用户81274828151206 分钟前
安卓14剖析SystemUI的ShadeLogger/LogBuffer日志动态控制输出dumpsy机制
前端
Ankkaya8 分钟前
cloudflare + github 实现留言板
前端·github
是你的小橘呀8 分钟前
单页应用路由怎么搞?React Router 从原理到实战全解析!
前端·javascript
xuedaobian9 分钟前
2025年我是怎么用AI写代码的
前端·程序员·ai编程
风止何安啊9 分钟前
Set/Map+Weak三剑客的骚操作:JS 界的 “去重王者” ,“万能钥匙”和“隐形清洁工”
前端·javascript·面试
saberxyL9 分钟前
前端登录加密与Token管理实践
前端
3秒一个大13 分钟前
React 中 Context 的作用与用法:从主题切换案例说起
前端·react.js
2501_9444460021 分钟前
Flutter&OpenHarmony文本输入组件开发
前端·javascript·flutter
小圣贤君27 分钟前
小说地图设计:Canvas 油漆桶工具的实现之旅
vue.js·electron·写作·小说地图·油漆桶