欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

vue3 setup語法糖中的defineEmits/defineProps的用法

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

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>
       <!-- 展示來自父組件的值 在這里直接使用-->
       <p>接收到的值:{{ftext}}</p>
    </div>
</template>
    
<script setup>
import {ref} from 'vue'
// se

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

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


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

props 雙向綁定

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

  • 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寫法

// ts寫法
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 h5移動(dòng)端禁止縮放代碼

    vue h5移動(dòng)端禁止縮放代碼

    今天小編就為大家分享一篇vue h5移動(dòng)端禁止縮放代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vite創(chuàng)建vue3項(xiàng)目頁面引用public下js文件失敗解決辦法

    vite創(chuàng)建vue3項(xiàng)目頁面引用public下js文件失敗解決辦法

    Vue3相較于之前的版本有了不少變化,如引用全局Js文件,這篇文章主要給大家介紹了關(guān)于vite創(chuàng)建vue3項(xiàng)目頁面引用public下js文件失敗的解決辦法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Vue項(xiàng)目中使用WebUploader實(shí)現(xiàn)文件上傳的方法

    Vue項(xiàng)目中使用WebUploader實(shí)現(xiàn)文件上傳的方法

    WebUploader是由 Baidu WebFE(FEX) 團(tuán)隊(duì)開發(fā)的一個(gè)簡(jiǎn)單的以 HTML5為主 , FLASH為輔 的現(xiàn)代 文件上傳組件 。這篇文章主要介紹了在Vue項(xiàng)目中使用WebUploader實(shí)現(xiàn)文件上傳,需要的朋友可以參考下
    2019-07-07
  • elementUI?el-table二次封裝的詳細(xì)實(shí)例

    elementUI?el-table二次封裝的詳細(xì)實(shí)例

    在項(xiàng)目中會(huì)多次使用表格展示數(shù)據(jù),不對(duì)這個(gè)table進(jìn)行二次封裝成我們自己想要的,重復(fù)的代碼量的工作會(huì)比較大,下面這篇文章主要給大家介紹了關(guān)于elementUI?el-table二次封裝的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • vue實(shí)現(xiàn)百度搜索功能

    vue實(shí)現(xiàn)百度搜索功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)百度搜索功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Vue3通用API功能示例剖析

    Vue3通用API功能示例剖析

    這篇文章主要為大家介紹了Vue3通用API功能示例剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Vue如何拖動(dòng)滑塊

    Vue如何拖動(dòng)滑塊

    這篇文章主要介紹了Vue如何拖動(dòng)滑塊問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue編譯優(yōu)化實(shí)現(xiàn)流程詳解

    Vue編譯優(yōu)化實(shí)現(xiàn)流程詳解

    編譯優(yōu)化指的是編譯器將模板編譯為渲染函數(shù)的過程中,盡可能多的提取關(guān)鍵信息,并以此指導(dǎo)生成最優(yōu)代碼的過程,優(yōu)化的方向主要是區(qū)分動(dòng)態(tài)內(nèi)容和靜態(tài)內(nèi)容,并針對(duì)不同的內(nèi)容采用不同的優(yōu)化策略
    2023-01-01
  • Vue3+Vite項(xiàng)目使用less的實(shí)現(xiàn)步驟

    Vue3+Vite項(xiàng)目使用less的實(shí)現(xiàn)步驟

    最近學(xué)習(xí)在vite項(xiàng)目中配置less,本文主要介紹了Vue3+Vite項(xiàng)目使用less的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • element可編輯表格驗(yàn)證問題解決

    element可編輯表格驗(yàn)證問題解決

    本文主要介紹了element可編輯表格驗(yàn)證問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論