Vue $attrs & inheritAttr實(shí)現(xiàn)button禁用效果案例
components/Button.vue
<template> <div> <button :disabled='$attrs.disabled'>點(diǎn)擊</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默認(rèn)true:
效果截圖2-inheritAttrs=false:
補(bǔ)充知識(shí):vue中使用inheritAttrs實(shí)現(xiàn)組件的擴(kuò)展性
1、首先我們創(chuàng)建一個(gè)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自定義繼承,當(dāng)前組件的根就是inputCom-wrap setup () { return {} }})</script> <style scoped> </style>
2、使用組件的時(shí)候,隨便增加一些屬性,如
<inputCom type='text' class='input-a'></inputCom>
<inputCom type='password' class='input-b'></inputCom>
3、查看最終的渲染結(jié)果為(與props不會(huì)沖突)
以上這篇Vue $attrs & inheritAttr實(shí)現(xiàn)button禁用效果案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP動(dòng)態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗(yàn)分享2. jsp文件下載功能實(shí)現(xiàn)代碼3. asp.net core項(xiàng)目授權(quán)流程詳解4. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法5. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫特效6. XMLHTTP資料7. ASP常用日期格式化函數(shù) FormatDate()8. html中的form不提交(排除)某些input 原創(chuàng)9. CSS3中Transition屬性詳解以及示例分享10. ASP基礎(chǔ)入門第八篇(ASP內(nèi)建對(duì)象Application和Session)
