Vuetify是Vue的一套前端组件框架,基于Material Design设计,界面较为整洁。最近由于项目需要开始入手,但在写自定义v-autocomplete
组件的时候却踩了许多坑。因此本文果断记录一下踩坑的过程。
首先新上手vue的话肯定耳边都会萦绕着“双向绑定”一词,用的最多的属性就是v-model
了。但是我们参考官方文档可以发现v-model
只是语法糖,除了绑定默认组件的值(比如select
元素是value
,而checkbox
元素是checked
)之外,还会绑定监听用户输入事件(比如text
元素是input
,而radio
元素是change
)。因此要用v-model
的话需要关注相应的元素是否本身就支持语法糖。我们在v-autocomplete官方文档中可以发现,其扩展了v-select
组件,因此如果用自定义组件包一层的话,一般主要关心的是怎样传递最终选择的value,就可以了。
比如要做一个异步检索items的v-autocomplete
组件,我们可以用如下的方式自定义:
其中template如下:
1 | <template> |
然后script如下:
1 | export default { |
这样在接受组件值的那一端,假设我们自定义组件叫CustomVAutoComplete
的话。只需要写:
1 | <CustomVAutoComplete @changeVal="handleValChange" /> |
1 | export default { |
就可以了