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自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
Dec 02 Vue.js
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
vue.js watch经常失效的场景与解决方案
Jan 07 Vue.js
vue3 watch和watchEffect的使用以及有哪些区别
Jan 26 Vue.js
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
vue 数据双向绑定的实现方法
Mar 04 Vue.js
Vue实现下拉加载更多
May 09 Vue.js
深入理解Vue的数据响应式
May 15 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 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中include()与require()的区别说明
2010/03/10 PHP
php购物车实现代码
2011/10/10 PHP
php随机显示图片的简单示例
2014/02/15 PHP
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python实现在目录中查找指定文件的方法
2014/11/11 Python
python操作gmail实例
2015/01/14 Python
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
类和结构的区别
2012/08/15 面试题
安全大检查反思材料
2014/01/31 职场文书
教师简历自我评价
2014/02/03 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
排查Tomcat进程假死的问题
2022/05/06 Servers
Go web入门Go pongo2模板引擎
2022/05/20 Golang