Vue $attrs & inheritAttr实现button禁用效果案例


Posted in Vue.js onDecember 07, 2020

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:

Vue $attrs &amp; inheritAttr实现button禁用效果案例

效果截图2-inheritAttrs=false:

Vue $attrs &amp; inheritAttr实现button禁用效果案例

补充知识: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 &amp; inheritAttr实现button禁用效果案例

以上这篇Vue $attrs & inheritAttr实现button禁用效果案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
vue 插槽简介及使用示例
Nov 19 Vue.js
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 Vue.js
vue-drawer-layout实现手势滑出菜单栏
Nov 19 Vue.js
使用vue编写h5公众号跳转小程序的实现代码
Nov 27 Vue.js
vue-router定义元信息meta操作
Dec 07 Vue.js
vue使用element-ui实现表单验证
Dec 13 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
vuex的使用和简易实现
Jan 07 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
vue打开新窗口并实现传参的图文实例
Mar 04 Vue.js
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
Axios代理配置及封装响应拦截处理方式
Apr 07 Vue.js
vuex Module将 store 分割成模块的操作
Dec 07 #Vue.js
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 #Vue.js
vue+element_ui上传文件,并传递额外参数操作
Dec 05 #Vue.js
解决vue下载后台传过来的乱码流的问题
Dec 05 #Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 #Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 #Vue.js
vue使用echarts图表自适应的几种解决方案
Dec 04 #Vue.js
You might like
PHP变量内存分配问题记录整理
2013/11/27 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
在vs2010中调试javascript代码方法
2011/02/11 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
Python字典操作简明总结
2015/04/13 Python
Python判断两个对象相等的原理
2017/12/12 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
python2和python3哪个使用率高
2020/06/23 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
Django nginx配置实现过程详解
2020/09/10 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
市场营销毕业生自荐信
2013/11/23 职场文书
党支部书记岗位责任制
2014/02/11 职场文书
推荐信模板
2014/05/09 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
个人自我剖析材料
2014/09/30 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android
mysql sock文件存储了什么信息
2022/07/15 MySQL