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

Vue父子組件屬性傳遞實現(xiàn)方法詳解

 更新時間:2023年02月08日 09:03:56   作者:Zong_0915  
這篇文章主要介紹了Vue父子組件屬性傳遞實現(xiàn)方法,我們主要從案例出發(fā),用Vue3的寫法寫父子組件之間的屬性傳遞,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

前言

這節(jié)我們主要從案例出發(fā),用Vue3的寫法寫父子組件之間的屬性傳遞。

組件之間屬性的傳遞

我們定義一個Rate組件,具有以下功能:

  • 接收來自外部組件傳入的參數(shù),starCount代表星星個數(shù)。color代表星星顏色。
  • 需要根據(jù)傳入星星的個數(shù),展示對應(yīng)數(shù)量的星星。

父組件傳遞屬性給子組件

那么在編寫組件的時候,我們需要注意什么?

  • 我們可以使用defineProps來規(guī)范傳遞數(shù)據(jù)的格式??梢越Y(jié)合withDefaults來進行默認(rèn)值的賦值。
  • 如果是響應(yīng)式數(shù)據(jù)的傳遞,在傳遞給子組件的時候,需要添加前綴 :。如果是常量,則不用。

我們在components目錄下創(chuàng)建完Rate.ts文件后。完整代碼如下:

<template>
  <div :style="fontstyle">
    {{ rate }}
  </div>
</template>
<script setup lang="ts">
import { computed, defineProps, withDefaults } from "vue";
// 定義父組件傳入的參數(shù)類型
interface Props {
  starCount: number;
  color: string;
}
// 規(guī)定傳值類型以及賦上默認(rèn)值
let props = withDefaults(defineProps<Props>(), {
  starCount: 0,
  color: "blue",
});
// 凡是計算有關(guān)的,我們都用computed來包裝
const rate = computed(() =>
  "★★★★★☆☆☆☆☆".slice(5 - props.starCount, 10 - props.starCount)
);
const fontstyle = computed(() => {
  return `color:${props.color};`;
});
</script>

外部組件調(diào)用如下:

<template>
  <Rate starCount="3"></Rate>
  <Rate starCount="4" color="red"></Rate>
  <Rate starCount="1" color="green"></Rate>
</template>
<script setup>
import Rate from "./components/Rate.vue";
</script>

最終效果如下:

子組件傳遞屬性給父組件

我們在編寫組件的時候,我們需要注意什么?

  • 子組件:需要通過defineEmits函數(shù),注冊一個自定義事件或者其他事件,例如click事件。然后手動觸發(fā)emit函數(shù),調(diào)用該自定義事件,并傳遞參數(shù)。
  • 父組件:引用子組件的時候,通過v-on綁定一個函數(shù),指向子組件里面定義的事件。注意:v-on的效果等同于@符號。

定義一個子組件Son

<template>
  <div style="margin: 10px; border: 2px solid red">
    我是子組件
    <button @click="transValue" style="margin: 5px;background:#caca88">傳值給父組件</button>
  </div>
</template>
<script setup lang="ts">
import { ref } from "vue";
// 定義所要傳給父組件的值
const num = ref<number>(0);
// 使用defineEmits注冊一個自定義事件
const emit = defineEmits(["getValue"]);
// 點擊事件觸發(fā)emit,去調(diào)用我們注冊的自定義事件getValue,并傳遞value參數(shù)至父組件
const transValue = () => {
  num.value++;
  emit("getValue", num.value);
};
</script>

父組件Father

<template>
  <div class="fa">
    <div style="margin: 10px;">我是父組件</div>
    父組件接收子組件傳的值:{{sonMessage}}
    <Son @getValue="getSonValue"></Son>
    <!-- <Son v-on:getValue="getSonValue"></Son> -->
  </div>
</template>
<script setup lang="ts">
import Son from './Son.vue'
import {ref} from "vue";
const sonMessage = ref<String>('0')
const getSonValue = (value: String) => {
  sonMessage.value = value
}
</script>
<style scoped>
.fa{
  border: 3px solid cornflowerblue;
  width: 400px;
  text-align: center;
}
</style>

運行效果如下:

到此這篇關(guān)于Vue父子組件屬性傳遞實現(xiàn)方法詳解的文章就介紹到這了,更多相關(guān)Vue父子組件屬性傳遞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3+element-plus 實現(xiàn)動態(tài)菜單和動態(tài)路由的渲染的項目實踐

    vue3+element-plus 實現(xiàn)動態(tài)菜單和動態(tài)路由的渲染的項目實踐

    本文主要介紹了vue3+element-plus 實現(xiàn)動態(tài)菜單和動態(tài)路由的渲染的項目實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • vue3源碼分析reactivity實現(xiàn)原理

    vue3源碼分析reactivity實現(xiàn)原理

    這篇文章主要為大家介紹了vue3源碼分析reactivity實現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Vue3中如何使用異步請求示例詳解

    Vue3中如何使用異步請求示例詳解

    Vue3增加了很多讓人眼前一亮的特征,suspense 組件就是其中之一,對處理異步請求數(shù)據(jù)非常實用,下面這篇文章主要給大家介紹了關(guān)于Vue3中如何使用異步請求的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Vue ECharts餅圖實現(xiàn)方法詳解

    Vue ECharts餅圖實現(xiàn)方法詳解

    這篇文章主要介紹了在vue.js中,使用echarts組件,創(chuàng)建一個餅圖,并且獲取餅圖的數(shù)據(jù)和屬性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • VUE識別訪問設(shè)備是pc端還是移動端的實現(xiàn)步驟

    VUE識別訪問設(shè)備是pc端還是移動端的實現(xiàn)步驟

    經(jīng)常在項目中會有支持pc與手機端需求,并且pc與手機端是兩個不一樣的頁面,這時就要求判斷設(shè)置,下面這篇文章主要給大家介紹了關(guān)于VUE識別訪問設(shè)備是pc端還是移動端的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • vue調(diào)用語音播放的方法

    vue調(diào)用語音播放的方法

    這篇文章主要為大家詳細(xì)介紹了vue調(diào)用語音播放的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Vue3更高效的構(gòu)建工具Vite使用指南

    Vue3更高效的構(gòu)建工具Vite使用指南

    這篇文章主要給大家介紹了關(guān)于Vue3更高效的構(gòu)建工具Vite使用的相關(guān)資料,Vite是一種面向現(xiàn)代瀏覽器的一個更輕、更快的前端構(gòu)建工具,能夠顯著提升前端的開發(fā)體驗,需要的朋友可以參考下
    2023-10-10
  • vue如何將字符串變?yōu)閿?shù)組

    vue如何將字符串變?yōu)閿?shù)組

    這篇文章主要介紹了vue如何將字符串變?yōu)閿?shù)組問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 使用Vue-Awesome-Swiper實現(xiàn)旋轉(zhuǎn)疊加輪播效果&平移輪播效果

    使用Vue-Awesome-Swiper實現(xiàn)旋轉(zhuǎn)疊加輪播效果&平移輪播效果

    這篇文章主要介紹了用Vue-Awesome-Swiper實現(xiàn)旋轉(zhuǎn)疊加輪播效果&平移輪播效果,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值需要的朋友可以參考下
    2019-08-08
  • vue-cli 3.0 引入mint-ui報錯問題及解決

    vue-cli 3.0 引入mint-ui報錯問題及解決

    這篇文章主要介紹了vue-cli 3.0 引入mint-ui報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評論

乐至县| 师宗县| 福海县| 郸城县| 东安县| 高青县| 雷波县| 洛南县| 彰化县| 通化市| 精河县| 兰州市| 漳平市| 卢湾区| 靖宇县| 左贡县| 石家庄市| 渭南市| 长乐市| 克东县| 塘沽区| 嘉禾县| 淮北市| 永善县| 霸州市| 大关县| 乌鲁木齐县| 南汇区| 文安县| 翼城县| 磐安县| 廉江市| 潜山县| 涡阳县| 黔西县| 阳东县| 古丈县| 交城县| 滁州市| 鄂温| 崇义县|