Vue二次封装组件,并传递props和v-on事件
有的时候我们全局引用UI框架(类似于ElementUI)的时候,有些简单的组件我们想进行二次封装,并确保能传递所需的props和事件,这时候就需要用到vue实例上的两个属性:$props和$listeners,最后全局注册组件覆盖掉原始的就好了。<template><el-inputs v-model="currentValue" v-bind="$props" v-on="$l
·
有的时候我们全局引用UI框架(类似于ElementUI)的时候,有些简单的组件我们想进行二次封装,并确保能传递所需的props和事件,这时候就需要用到vue实例上的两个属性:$props
和$listeners
,最后全局注册组件覆盖掉原始的就好了。
<template>
<el-inputs v-model="currentValue" v-bind="$props" v-on="$listeners"></el-inputs>
</template>
<script>
import { ElInput } from 'element-ui';
export default {
name: 'ElInput',
components: {
ElInputs: ElInput
},
props: {
...ElInput.props,
value: [String, Array, Object, Number],
},
computed: {
currentValue: {
get() {
return this.value;
},
set(newV) {
this.$emit('input', newV);
}
}
}
};
</script>
更多推荐
已为社区贡献2条内容
所有评论(0)