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中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
vue绑定class的三种方法
Dec 24 Vue.js
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
基于vue的video播放器的实现示例
Feb 19 Vue.js
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 Vue.js
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
vue实现在data里引入相对路径
Jun 05 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
JavaScript面象对象设计
2008/04/28 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
js实现自定义路由
2017/02/04 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python编程入门的一些基本知识
2015/05/13 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
python 自动批量打开网页的示例
2019/02/21 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
领导检查欢迎词
2014/01/14 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
六五普法学习心得体会
2016/01/21 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python