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 26 Vue.js
vue中如何自定义右键菜单详解
Dec 08 Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
vue实现防抖的实例代码
Jan 11 Vue.js
Vue实现圆环进度条的示例
Feb 06 Vue.js
手动实现vue2.0的双向数据绑定原理详解
Feb 06 Vue.js
Vue+Bootstrap实现简易学生管理系统
Feb 09 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
vue-router中hash模式与history模式的区别
Jun 23 Vue.js
Vue3.0 手写放大镜效果
Jul 25 Vue.js
教你部署vue项目到docker
Apr 05 Vue.js
vue-cil之axios的二次封装与proxy反向代理使用说明
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 防止单引号,双引号在接受页面转义
2008/07/10 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
php的常量和变量实例详解
2017/06/27 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
JavaScript 题型问答有答案参考
2010/02/17 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
2017/02/18 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
js实现3D旋转相册
2020/08/02 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
python实现的Iou与Giou代码
2020/01/18 Python
Django choices下拉列表绑定实例
2020/03/13 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
2020/06/14 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
消防安全汇报材料
2014/02/08 职场文书
市政管理求职信范文
2014/05/07 职场文书
代办委托书怎么写
2014/08/01 职场文书
委托书怎样写
2014/08/30 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
HTML中的表单元素介绍
2022/02/28 HTML / CSS