时间:2021-05-26
components/Button.vue
<template> <div> <button :disabled="$attrs.disabled">点击</button> </div></template> <script> export default { inheritAttrs: false, }</script> <style scoped> </style>App.vue
<template> <div id="app"> <Parent></Parent> <Button disabled></Button> </div></template><script>import Parent from './components/Parent'import Button from './components/Button'; export default { name: 'App', components: { Parent, Button }}</script><style>#app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px;}</style>效果截图1-inheritAttrs默认true:
效果截图2-inheritAttrs=false:
补充知识:vue中使用inheritAttrs实现组件的扩展性
1、首先我们创建一个input组件
<template> <div class="inputCom-wrap"> <input v-bind="$attrs" /> </div></template> <script lang="ts">import { defineComponent } from 'vue' export default defineComponent({ inheritAttrs:false,//不希望根直接继承特性,而是使用$attrs自定义继承,当前组件的根就是inputCom-wrap setup () { return {} }})</script> <style scoped> </style>2、使用组件的时候,随便增加一些属性,如
<inputCom type="text" class="input-a"></inputCom>
<inputCom type="password" class="input-b"></inputCom>
3、查看最终的渲染结果为(与props不会冲突)
以上这篇Vue $attrs & inheritAttr实现button禁用效果案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
之前需要对el-button做二次封装,所以就用到vue的$attrs和$listeners属性,这两个属性在这不细说,可以在这里查看详情。二次封装代码(lim
本文实例为大家分享了Vue实现图书管理的具体代码,供大家参考,具体内容如下案例效果案例思路1、图书列表实现静态列表效果基于数据实现模板效果处理每行的操作按钮2、
先看案例,使用vue+swiper实现,slide不同高度时,动态计算盒子高度,让其下方高度自适应的效果首先搭建vue项目,这里不做过多说明,然后安装swipe
**解决的问题:**使用$attrs和$listeners实现祖孙组件之间的数据传递,也就是多重嵌套组件之间的数据传递。**注意:**本方法针对vue2.4版本
本文讲述了WinForm中实现拖拽效果的功能,即在WinForm中有一个Button,可以实现拖拽这个Button到目标位置后生成一个该控件的副本的功能。具体操