比如选择的是黄金糕,但是el-select v-model="value"的value是对应的'选项1'请问背后怎么实现的
这个el-select其实已经有了,但我是自己封装select组件不知道怎么实现它,谢谢各位。
template
<el-select v-model="value" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value" >
</el-option>
</el-select>
js
options: [{ value: '选项1', label: '黄金糕' },
{ value: '选项2', label: '双皮奶' },
{ value: '选项3', label: '蚵仔煎' }]
我写了个简单的Demo封装了一个类似的组件,基本涉及的知识点不多
1、插槽slot 的使用
2、v-model 语法糖的实现机制
不过element-select肯定不仅仅这些就实现的,还涉及到 provide/inject
这里我只是给实现的其中一个思路。
子组件
父组件
Demo