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组件中节流函数的失效的原因和解决方法
Dec 02 Vue.js
vue-calendar-component 封装多日期选择组件的实例代码
Dec 04 Vue.js
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 Vue.js
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
Vue.extend 登录注册模态框的实现
Dec 29 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
vue打开新窗口并实现传参的图文实例
Mar 04 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
vue实力踩坑之push当前页无效
Apr 10 Vue.js
vue数据字典取键值项目的字典问题
Apr 12 Vue.js
Vue OpenLayer 为地图绘制风场效果
Apr 24 Vue.js
VUE解决跨域问题Access to XMLHttpRequest at
May 06 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
德生1994机评
2021/03/02 无线电
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
javascript读写json示例
2014/04/11 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
Python fileinput模块使用实例
2015/05/28 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
Python匹配中文的正则表达式
2016/05/11 Python
详解python单元测试框架unittest
2018/07/02 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
Python PO设计模式的具体使用
2019/08/16 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
2013年保送生自荐信格式
2013/11/20 职场文书
农村党支部承诺书
2015/04/30 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书