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+element-ui添加自定义右键菜单的方法示例
Dec 08 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
Vue实现简易购物车页面
Dec 30 Vue.js
vue 动态生成拓扑图的示例
Jan 03 Vue.js
vue+element table表格实现动态列筛选的示例代码
Jan 14 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
vue实现轮播图帧率播放
Jan 26 Vue.js
VUE实现吸底按钮
Mar 04 Vue.js
vue3.0 项目搭建和使用流程
Mar 04 Vue.js
vue+flask实现视频合成功能(拖拽上传)
Mar 04 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
vue+echarts实现多条折线图
Mar 21 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开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
php获取远程文件内容的函数
2015/11/02 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python3.x中自定义比较函数
2015/04/24 Python
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
详解Python中的变量及其命名和打印
2016/03/11 Python
Python实现网站表单提交和模板
2019/01/15 Python
python简单验证码识别的实现方法
2019/05/10 Python
python自动化之Ansible的安装教程
2019/06/13 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
python 常见的排序算法实现汇总
2020/08/21 Python
如何使用Pytorch搭建模型
2020/10/26 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
英国行业制服供应商:Alexandra
2019/09/14 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
教师自荐信范文
2013/12/09 职场文书
团支部推优材料
2014/05/21 职场文书
学校政风行风自查自纠报告
2014/10/21 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python