Vue3.4及以后版本,出现了一个defineModel()宏

来源:5-4 Collapse 编码第三部分支持 v-model

qq_慕圣1562754

2024-04-30

老师,我在学这节课的时候,我去官网看了下,发现官网现在推荐defineModel()方法
但是看了下文档,没整明白怎么用到当前这节课中,不知道怎么改写,搜了下百度,都是很简单的传基础类型的值,
咱们这节课传的是对象类型(openedValue和accordion两个字段),有点不知道怎么改写,可以麻烦老师根据这节课帮忙解惑一下吗,谢谢!
图片描述

写回答

2回答

张轩

2024-05-11

同学你好 抱歉看到回复有些晚了

这里其实就是一个新出的语法糖,

https://vuejs.org/guide/components/v-model.html#under-the-hood

可以将两个逻辑写在一起。我们这里的只需要简单修改就好:

// 原来其实是这么两行代码
const activeNames = ref<NameType[]>(props.modelValue)
emits('update:modelValue', _activeNames)
// 现在只需要一行代替, 然后就可以了,在修改这个值的时候它会自动发射对应的事件
const activeNames = defineModel<NameType[]>()


0
7
慕设计0021481
回复
张轩
回复 张轩:谢谢张老师,传个参数,解决问题了,还是学的不通透啊。
2024-05-22
共7条回复

张轩

2024-05-01

同学你好

好的,我今天晚点的时候给你提供一段代码,让你参考一下。

0
3
慕设计0021481
请老师看看!
2024-05-21
共3条回复

进阶必学,打造媲美ElementPlus的组件库

Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库

481 学习 · 219 问题

查看课程