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 router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
vue中watch的用法汇总
Dec 28 Vue.js
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
vue3弹出层V3Popup实例详解
Jan 04 Vue.js
详解vite+ts快速搭建vue3项目以及介绍相关特性
Feb 25 Vue.js
Vue基本指令实例图文讲解
Feb 25 Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
vue前端工程的搭建
Mar 31 Vue.js
Vue通过懒加载提升页面响应速度
May 10 Vue.js
vue+springboot实现登录验证码
May 27 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
SONY SRF-M100的电路分析
2021/03/02 无线电
php实现的MySQL通用查询程序
2007/03/11 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
学习php开源项目的源码指南
2014/12/21 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
IE8 中使用加速器(Activities)
2010/05/14 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
深入浅析python继承问题
2016/05/29 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
医学专业毕业生个人求职信
2013/12/25 职场文书
学习委员自我鉴定
2014/01/13 职场文书
中学家长会邀请函
2014/01/17 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
教师求职自荐信
2014/03/09 职场文书
厂区绿化方案
2014/05/08 职场文书
职工年度考核评语
2014/12/31 职场文书
刑事上诉状范文
2015/05/22 职场文书
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang