最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中Props與Attrs的實(shí)現(xiàn)實(shí)例

 更新時(shí)間:2025年09月11日 09:37:17   作者:拉不動(dòng)的豬  
本文主要介紹了vue中Props與Attrs的實(shí)現(xiàn)實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

基本功能

  1. props常用來數(shù)據(jù)通信
  2. attars所有非props屬性的透穿

props傳值:

基本傳值‌

<!-- 父組件 -->
<ChildComponent title="歡迎頁(yè)面" />

<!-- 子組件 -->
<script>
export default {
  props: ['title']
}
</script>

動(dòng)態(tài)綁定‌

<!-- 父組件 -->
<ChildComponent :count="dynamicValue" />

<!-- 子組件 -->
<script>
export default {
  props: ['count']
}
</script>

類型驗(yàn)證‌

// 子組件
props: {
  age: {
    type: Number,
    required: true,
    validator: value => value > 0
  }
}

默認(rèn)值設(shè)置‌

props: {
  theme: {
    type: String,
    default: 'light'
  }
}

對(duì)象形式傳值‌

<!-- 父組件 -->
<UserProfile v-bind="userData" />

<!-- 等價(jià)于 -->
<UserProfile 
  :name="userData.name"
  :age="userData.age"
  :email="userData.email" 
/>

attars屬性透穿

屬性透穿的主要特點(diǎn)既然是接受非props以外的屬性,前端可以主動(dòng)接受某些特定的屬性,也可以不接受這些屬性。

實(shí)際應(yīng)用場(chǎng)景如下:

組件的二次封裝,比如常見的按鈕:

子組件

<template>
  <!-- 按鈕組件,使用動(dòng)態(tài)class綁定 -->
  <button 
    class="base-btn" 
    :class="computedClasses" 
    v-bind="attrs"  <!-- 透?jìng)髌渌麑傩裕ㄈ鏳isabled、title等) -->
  >
    <slot></slot>
  </button>
</template>

<script setup>
import { useAttrs, computed } from 'vue'

// 獲取所有透?jìng)鞯姆莗rops屬性
const attrs = useAttrs()

// 根據(jù)透?jìng)鞯膶傩杂?jì)算樣式類
const computedClasses = computed(() => {
  const classes = []
  
  // 如果透?jìng)髁藅ype屬性,添加對(duì)應(yīng)的樣式類
  if (attrs.type) {
    classes.push(`btn-${attrs.type}`)
  }
  
  // 如果透?jìng)髁藄ize屬性,添加對(duì)應(yīng)的樣式類
  if (attrs.size) {
    classes.push(`btn-${attrs.size}`)
  }
  
  // 如果透?jìng)髁藃ound屬性,添加圓角樣式
  if (attrs.round) {
    classes.push('btn-round')
  }
  
  // 如果透?jìng)髁藄pecial屬性,添加特殊樣式
  if (attrs.special) {
    classes.push('btn-special')
  }
  
  return classes
})
</script>

<style scoped>
/* 基礎(chǔ)按鈕樣式 */
.base-btn {
  padding: 8px 16px;
  border: none;
  cursor: pointer;
  font-size: 14px;
  transition: all 0.3s ease;
}

/* 不同類型按鈕的樣式 */
.btn-primary {
  background-color: #42b983;
  color: white;
}

.btn-danger {
  background-color: #ff4444;
  color: white;
}

.btn-warning {
  background-color: #ffbb33;
  color: black;
}

/* 不同尺寸按鈕的樣式 */
.btn-small {
  padding: 4px 8px;
  font-size: 12px;
}

.btn-large {
  padding: 12px 24px;
  font-size: 16px;
}

/* 圓角樣式 */
.btn-round {
  border-radius: 20px;
}

/* 特殊樣式 */
.btn-special {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* 鼠標(biāo)懸停效果 */
.base-btn:hover {
  opacity: 0.9;
  transform: translateY(-2px);
}
</style>

父組件

<template>
  <div class="button-group">
    <!-- 基礎(chǔ)按鈕 -->
    <CustomButton>基礎(chǔ)按鈕</CustomButton>
    
    <!-- 主要按鈕(帶類型) -->
    <CustomButton type="primary">主要按鈕</CustomButton>
    
    <!-- 危險(xiǎn)按鈕(帶類型和尺寸) -->
    <CustomButton type="danger" size="large">危險(xiǎn)按鈕</CustomButton>
    
    <!-- 警告按鈕(帶類型、尺寸和圓角) -->
    <CustomButton type="warning" size="small" round>警告按鈕</CustomButton>
    
    <!-- 特殊按鈕(帶自定義屬性) -->
    <CustomButton special title="這是一個(gè)特殊按鈕">特殊按鈕</CustomButton>
    
    <!-- 禁用狀態(tài)按鈕(透?jìng)髟鷮傩裕?-->
    <CustomButton type="primary" disabled>禁用按鈕</CustomButton>
  </div>
</template>

<script setup>
import CustomButton from './CustomButton.vue'
</script>

<style scoped>
.button-group {
  display: flex;
  gap: 10px;
  padding: 20px;
  flex-wrap: wrap;
}
</style>

到此這篇關(guān)于vue中Props與Attrs的實(shí)現(xiàn)實(shí)例的文章就介紹到這了,更多相關(guān)vue Props Attrs內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 零配置使用vue編寫excel預(yù)覽組件

    零配置使用vue編寫excel預(yù)覽組件

    這篇文章主要為大家詳細(xì)介紹了如何使用vue編寫excel預(yù)覽組件,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-03-03
  • Vue3中的常見組件通信之v-model使用詳解

    Vue3中的常見組件通信之v-model使用詳解

    這篇文章主要介紹了Vue3中的常見組件通信之v-model使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Vue組件BootPage實(shí)現(xiàn)簡(jiǎn)單的分頁(yè)功能

    Vue組件BootPage實(shí)現(xiàn)簡(jiǎn)單的分頁(yè)功能

    這篇文章主要為大家詳細(xì)介紹了Vue小組件BootPage實(shí)現(xiàn)簡(jiǎn)單的分頁(yè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • vue實(shí)現(xiàn)瀑布流布局的示例代碼

    vue實(shí)現(xiàn)瀑布流布局的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用vue實(shí)現(xiàn)簡(jiǎn)單的瀑布流布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2023-09-09
  • Vue組件間的雙向綁定示例解析

    Vue組件間的雙向綁定示例解析

    這篇文章主要介紹了Vue組件間的雙向綁定,我們都知道當(dāng)父組件改變了某個(gè)值后,如果這個(gè)值傳給了子組件,那么子組件也會(huì)自動(dòng)跟著改變,但是這是單向的,使用v-bind的方式,即子組件可以使用父組件的值,但是不能改變這個(gè)值
    2023-03-03
  • Vue+Element實(shí)現(xiàn)網(wǎng)頁(yè)版?zhèn)€人簡(jiǎn)歷系統(tǒng)(推薦)

    Vue+Element實(shí)現(xiàn)網(wǎng)頁(yè)版?zhèn)€人簡(jiǎn)歷系統(tǒng)(推薦)

    這篇文章主要介紹了Vue+Element實(shí)現(xiàn)網(wǎng)頁(yè)版?zhèn)€人簡(jiǎn)歷系統(tǒng),需要的朋友可以參考下
    2019-12-12
  • Vue中圖片Src使用變量的方法

    Vue中圖片Src使用變量的方法

    這篇文章主要介紹了Vue中圖片Src使用變量的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue實(shí)現(xiàn)前臺(tái)列表數(shù)據(jù)過濾搜索、分頁(yè)效果

    vue實(shí)現(xiàn)前臺(tái)列表數(shù)據(jù)過濾搜索、分頁(yè)效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)前臺(tái)列表數(shù)據(jù)過濾搜索、分頁(yè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Vues中使用JavaScript實(shí)現(xiàn)路由跳轉(zhuǎn)的步驟詳解

    Vues中使用JavaScript實(shí)現(xiàn)路由跳轉(zhuǎn)的步驟詳解

    在Vue應(yīng)用中,利用Vue?Router進(jìn)行頁(yè)面間的導(dǎo)航是一個(gè)常見需求,本篇博客將通過示例代碼詳細(xì)介紹如何在Vue組件中使用JavaScript實(shí)現(xiàn)路由跳轉(zhuǎn),需要的朋友可以參考下
    2024-05-05
  • Vue.js中數(shù)據(jù)綁定的語(yǔ)法教程

    Vue.js中數(shù)據(jù)綁定的語(yǔ)法教程

    Vue框架很核心的功能就是雙向的數(shù)據(jù)綁定。下面這篇文章主要給大家介紹了關(guān)于Vue.js中數(shù)據(jù)綁定的語(yǔ)法教程,文中通過示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06

最新評(píng)論

拜城县| 凯里市| 德州市| 西城区| 西宁市| 剑川县| 高淳县| 育儿| 拉萨市| 呼图壁县| 花垣县| 锦州市| 荥经县| 郁南县| 二连浩特市| 辽宁省| 海宁市| 鹤山市| 揭阳市| 渭源县| 宿迁市| 鲜城| 静宁县| 丰城市| 邵阳县| 三台县| 郯城县| 横峰县| 吴川市| 招远市| 静安区| 盘山县| 措勤县| 康保县| 龙山县| 贵溪市| 铁岭县| 太保市| 天祝| 抚州市| 寿阳县|