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

vue3中defineEmits與defineProps的用法實(shí)例

 更新時(shí)間:2023年12月10日 08:53:34   作者:cocoonne  
這篇文章主要介紹了vue3中defineEmits/defineProps的用法實(shí)例,需要的朋友可以參考下

vue3 setup語(yǔ)法糖中的defineEmits/defineProps的用法

這兩個(gè) api 都是在 setup 語(yǔ)法糖里面使用的,并且不需要引入

defineProps:父組件給子組件傳遞參數(shù)

defineEmits:在子組件中調(diào)用父組件的回調(diào)函數(shù),并且可傳參

https://cn.vuejs.org/api/sfc-script-setup.html#defineprops-defineemits

defineEmits

父組件綁定在子組件中綁定自定義事件,子組件可用 emits 執(zhí)行

  • 父組件綁定事件:@increase="handleIncrease"

  • 父組件回調(diào)函數(shù):const handleIncrease = (num: number) => {}

  • 子組件定義 emit

// ts 專有
const emits= defineEmits<{
    (e: 'increase', num: number): void
}>()

// js
let emits = defineEmits(['startChange', 'endChange'])
  • 子組件調(diào)用 emit
emits('increase', 1);

父組件

<template>
  <section class="parent">
    <childVue :num="nums" @increase="handleIncrease"></childVue>
  </section>
</template>

<script setup>
  import childVue from './child.vue';
  import { ref } from 'vue';
  const nums = ref(0);
    
  // 回調(diào)函數(shù)
  const handleIncrease = (num: number) => {
    nums.value += num;
  };
</script>

子組件

<template>
  <section class="box" @click="handelClick">{{ num }}</section>
</template>

<script setup>
// ts 專有
const emits= defineEmits<{
    (e: 'increase', num: number): void
}>()
            
const handelClick = () => {
    emits('increase', 1);
};
</script>

defineProps

父組件可直接向子組件傳值(只讀)

父組件

<template>
    <div class="Father">
        <p>我是父組件</p>
        <!--  -->
        <son :ftext="ftext"></son>
    </div>
</template>
    
<script setup>
import {ref} from 'vue'
import Son from './son.vue'
const ftext = ref('我是父組件-text')
</script>

子組件

<template>
    <div class="Son">
        <p>我是子組件</p>
       <!-- 展示來(lái)自父組件的值 在這里直接使用-->
       <p>接收到的值:{{ftext}}</p>
    </div>
</template>
    
<script setup>
import {ref} from 'vue'
// se

//defineProps 來(lái)接收組件的傳值
const props = defineProps<{
    ftext: string,
}>()

// 復(fù)雜寫(xiě)法
const props = defineProps<{
    ftext: {
        type: string,
        required: false,
        default: 'hhh'
    }
}>()


// 在這里就用 props.sideCollapse
</script>

props 雙向綁定

當(dāng)我們想把父組件傳過(guò)來(lái)的參數(shù)變成雙向綁定時(shí),即可讀也可寫(xiě)

  • v-model:sideCollapse="sideCollapse"
  • 相當(dāng)于多綁定了一個(gè)自定義事件 update:sideCollapse
  • emits('update:sideCollapse', 要變成的值)

父組件

<script setup lang="ts">
import { ref } from 'vue'

let sideCollapse = ref(false)
</script>

<template>
    <nav-header v-model:sideCollapse="sideCollapse"></nav-header>
</template>

子組件

const props = defineProps<{
    sideCollapse: boolean,
}>()

// let emits = defineEmits(['update:sideCollapse'])  js寫(xiě)法

// ts寫(xiě)法
const emits = defineEmits<{
    (e: 'update:sideCollapse', sideCollapse: boolean): void
}>()


function toggle() {
    // props.sideCollapse = !props.sideCollapse  不能直接修改!
    
    // 要這樣修改
    emits('update:sideCollapse', !props.sideCollapse)
}

到此這篇關(guān)于vue3中defineEmits/defineProps的用法的文章就介紹到這了,更多相關(guān)defineEmits/defineProps的用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue項(xiàng)目的表單校驗(yàn)實(shí)戰(zhàn)指南

    Vue項(xiàng)目的表單校驗(yàn)實(shí)戰(zhàn)指南

    這篇文章主要介紹了Vue項(xiàng)目表單校驗(yàn)的相關(guān)資料,前端表單校驗(yàn)?zāi)軠p少無(wú)效請(qǐng)求,保護(hù)后端接口,使用ElementPlus表單組件進(jìn)行校驗(yàn),需要準(zhǔn)備表單對(duì)象、規(guī)則對(duì)象并進(jìn)行雙向綁定,用戶名、密碼以及協(xié)議勾選等字段都需符合特定規(guī)則,需要的朋友可以參考下
    2024-10-10
  • 解決elementui上傳組件el-upload無(wú)法第二次上傳問(wèn)題

    解決elementui上傳組件el-upload無(wú)法第二次上傳問(wèn)題

    這篇文章主要介紹了解決elementui上傳組件el-upload無(wú)法第二次上傳問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 簡(jiǎn)單了解Vue computed屬性及watch區(qū)別

    簡(jiǎn)單了解Vue computed屬性及watch區(qū)別

    這篇文章主要介紹了通過(guò)實(shí)例解析Vue computed屬性及watch區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • vue.js前后端數(shù)據(jù)交互之提交數(shù)據(jù)操作詳解

    vue.js前后端數(shù)據(jù)交互之提交數(shù)據(jù)操作詳解

    這篇文章主要介紹了vue.js前后端數(shù)據(jù)交互之提交數(shù)據(jù)操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了vue.js前后端數(shù)據(jù)交互相關(guān)的表單結(jié)構(gòu)、約束規(guī)則、數(shù)據(jù)提交等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-04-04
  • vue 實(shí)現(xiàn)超長(zhǎng)文本截取,懸浮框提示

    vue 實(shí)現(xiàn)超長(zhǎng)文本截取,懸浮框提示

    這篇文章主要介紹了vue 實(shí)現(xiàn)超長(zhǎng)文本截取,懸浮框提示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • axios如何取消重復(fù)無(wú)用的請(qǐng)求詳解

    axios如何取消重復(fù)無(wú)用的請(qǐng)求詳解

    這篇文章主要給大家介紹了關(guān)于axios如何取消重復(fù)無(wú)用的請(qǐng)求的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用axios具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 基于Vue3實(shí)現(xiàn)一個(gè)日期計(jì)算器的操作方案

    基于Vue3實(shí)現(xiàn)一個(gè)日期計(jì)算器的操作方案

    該文章主要介紹了在線日期計(jì)算器工具的開(kāi)發(fā)過(guò)程,包括核心功能設(shè)計(jì)、實(shí)現(xiàn)細(xì)節(jié)、狀態(tài)管理和日期處理技巧,工具提供了日期間隔計(jì)算、日期加減計(jì)算、年齡計(jì)算和工作日計(jì)算等功能,需要的朋友可以參考下
    2026-01-01
  • vue + el-form 實(shí)現(xiàn)的多層循環(huán)表單驗(yàn)證

    vue + el-form 實(shí)現(xiàn)的多層循環(huán)表單驗(yàn)證

    這篇文章主要介紹了vue + el-form 實(shí)現(xiàn)的多層循環(huán)表單驗(yàn)證,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下。
    2020-11-11
  • Vue中v-model的使用示例詳解

    Vue中v-model的使用示例詳解

    v-model就是vue的雙向綁定的指令,能將頁(yè)面上控件輸入的值同步更新到相關(guān)綁定的data屬性,也會(huì)在更新data綁定屬性時(shí)候,更新頁(yè)面上輸入控件的值,這篇文章主要介紹了Vue之v-model的使用,需要的朋友可以參考下
    2025-04-04
  • vue.js加載新的內(nèi)容(實(shí)例代碼)

    vue.js加載新的內(nèi)容(實(shí)例代碼)

    vue是一種輕巧便捷的框架,那么如何進(jìn)行對(duì)于數(shù)據(jù)加載的刷新呢?以下就是我對(duì)于vue.js數(shù)據(jù)加載的一點(diǎn)想法
    2017-06-06

最新評(píng)論

高淳县| 林芝县| 揭西县| 宜兰市| 辽阳县| 德清县| 新丰县| 伽师县| 农安县| 榆树市| 平泉县| 加查县| 沙坪坝区| 绵阳市| 龙里县| 滨海县| 扎兰屯市| 奉化市| 陇川县| 阿合奇县| 遂溪县| 泰来县| 县级市| 阜宁县| 利辛县| 迁安市| 江门市| 元氏县| 龙里县| 龙井市| 綦江县| 临猗县| 上饶市| 昌都县| 陈巴尔虎旗| 苍溪县| 伊宁县| 理塘县| 玛纳斯县| 蕲春县| 河东区|