Vue $attrs & inheritAttr实现button禁用效果案例
2020-12-09 04:07
621 查看
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禁用效果案例就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:相关文章推荐
- AngularJS使用 ng-disabled 属性与ng-model搭配,实现禁用button效果
- 【Vue案例一】实现跑马灯效果
- Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
- 页面图片浮动左右滑动效果的简单实现案例
- vue实现div拖拽互换位置且有过渡效果
- [ATL/WTL]_[中级]_[原生的复选框(checkbox button)和单选按钮(radio button)实现透明背景效果解决方案]
- Android中ImageButton自定义按钮的按下效果的代码实现方法,附网上2种经典解决方法。
- Vue页面跳转动画效果实现
- 案例效果:实现移动端端轮播图效果
- vue+百度地图(vue-baidu-map) 实现绘制多边形可拖拽效果
- vue实现二级导航栏效果
- 【原创】Android中ImageButton自定义按钮的按下效果的代码实现方法,附网上2种经典解决方法。
- VUE+Element UI实现简单的表格行内编辑效果
- 基于vue实现移动端圆形旋钮插件效果
- 简记:vue实现的手风琴效果
- vue实现数字动态翻牌的效果(开箱即用)
- vue实现直播间点赞飘心效果的示例代码
- vue实现点击图片放大效果
- vue中实现简单轮播效果
- 基于vue、react实现倒计时效果