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

Vue3?使用v-model實現父子組件通信的方法(常用在組件封裝規(guī)范中)

 更新時間:2024年06月18日 09:35:32   作者:心潮的滴滴  
這篇文章主要介紹了Vue3?使用v-model實現父子組件通信(常用在組件封裝規(guī)范中)的方法,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

歷史小劇場

歷史告訴我們,痞子就算混一輩子,也還是痞子,滑頭,最后只能滑自己。長得帥,不能當飯吃。
成大器者的唯一要訣,是能吃虧。
吃虧就是占便宜,原先我不信,后來我信了,相當靠譜。----《明朝那些事兒》

概述

v-mode實現父子組件數據同步原理主要分為:

  • 父組件添加modelValue綁定數據且傳遞到子組件,然后綁定@update:modelValue事件接收子組件傳過來的值
  • 子組件內部使用defineProps來接收父組件modelValue傳過來的值,使用defineEmits自定義事件修改值然后觸發(fā)父組件@update綁定的事件

同步單個數據

父組件

<!--  -->
<template>
    <div>
        <!-- v-model用在HTML上 -->
        <!-- <input type="text" v-model="username"> -->
        <!-- <input type="text" :value="username" @input="username = (<HTMLInputElement>$event.target)!.value" /> -->
        <h4>賬號: {{ username }}</h4>
        <h4>密碼: {{ pwd }}</h4>
        <!-- v-model用在自定義組件上 -->
        <!-- <XinchaoInput v-model:username="username" v-model:pwd="pwd" /> -->
        <XinchaoInput 
        :username="username"
        @update:username="username = $event" />
    </div>
</template>
<script setup lang="ts">
import { ref, watch } from 'vue';
import XinchaoInput from './XinchaoInput.vue';
const username = ref<string>("張三")
const pwd = ref<string>("123131")
watch(username, (oldValue, newValue) => {
    console.log(newValue)
})
</script>
<style lang="scss" scoped>
</style>

子組件

<!--  -->
<template>
    <div>
        <input type="text"
        :value="username"
        @input="emit('update:username', (<HTMLInputElement>$event.target)!.value)" />
        <!-- <br>
        <input type="text"
        :value="pwd"
        @input="emit('update:pwd', (<HTMLInputElement>$event.target)!.value)" /> -->
    </div>
</template>
<script setup lang="ts">
defineProps(['username', 'pwd'])
const emit = defineEmits(['update:username', 'update:pwd'])
</script>
<style lang="scss" scoped>
input {
    border: 2px solid #ccc;
    border-radius: 5px;
    padding: 2px;
    background-color: darkcyan;
    color: white;
}
</style>

同步多個數據

父組件

<!--  -->
<template>
    <div>
        <!-- v-model用在HTML上 -->
        <!-- <input type="text" v-model="username"> -->
        <!-- <input type="text" :value="username" @input="username = (<HTMLInputElement>$event.target)!.value" /> -->
        <h4>賬號: {{ username }}</h4>
        <h4>密碼: {{ pwd }}</h4>
        <!-- v-model用在自定義組件上 -->
        <XinchaoInput v-model:username="username" v-model:pwd="pwd" />
        <!-- <XinchaoInput 
        :username="username"
        @update:username="username = $event" /> -->
    </div>
</template>
<script setup lang="ts">
import { ref, watch } from 'vue';
import XinchaoInput from './XinchaoInput.vue';
const username = ref<string>("張三")
const pwd = ref<string>("123131")
watch(username, (oldValue, newValue) => {
    console.log(newValue)
})
</script>
<style lang="scss" scoped>
</style>

子組件

<!--  -->
<template>
    <div>
        <input type="text"
        :value="username"
        @input="emit('update:username', (<HTMLInputElement>$event.target)!.value)" />
        <br>
        <input type="text"
        :value="pwd"
        @input="emit('update:pwd', (<HTMLInputElement>$event.target)!.value)" />
    </div>
</template>
<script setup lang="ts">
defineProps(['username', 'pwd'])
const emit = defineEmits(['update:username', 'update:pwd'])
</script>
<style lang="scss" scoped>
input {
    border: 2px solid #ccc;
    border-radius: 5px;
    padding: 2px;
    background-color: darkcyan;
    color: white;
}
</style>

到此這篇關于Vue3 使用v-model實現父子組件通信(常用在組件封裝規(guī)范中)的文章就介紹到這了,更多相關Vue3 v-model父子組件通信內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue 單元測試初探

    vue 單元測試初探

    這篇文章主要介紹了vue 單元測試的相關資料,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下
    2021-04-04
  • vue下如何利用canvas實現在線圖片標注

    vue下如何利用canvas實現在線圖片標注

    這篇文章主要介紹了vue下如何利用canvas實現在線圖片標注,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue項目markdown內容預覽顯示優(yōu)化方式

    Vue項目markdown內容預覽顯示優(yōu)化方式

    在Vue項目中使用markdown-it組件預覽Markdown內容時,通過安裝pnpm和markdown-it-github-markdown-css依賴,并重寫markdown部分樣式,實現了Markdown內容的美化,在MarkdownPreview.vue組件中,通過變量renderedMarkdown接收并渲染Markdown內容
    2025-10-10
  • vue-cli4.0如何配置CDN加速

    vue-cli4.0如何配置CDN加速

    這篇文章主要介紹了vue-cli4.0如何配置CDN加速問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue3生命周期函數和方法詳解

    Vue3生命周期函數和方法詳解

    本文詳細講解了Vue3生命周期函數和方法。對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • VUE項目中調用高德地圖的全流程講解

    VUE項目中調用高德地圖的全流程講解

    這篇文章主要介紹了VUE項目中調用高德地圖的全流程講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue ElementUi同時校驗多個表單(巧用new promise)

    Vue ElementUi同時校驗多個表單(巧用new promise)

    這篇文章主要介紹了巧用new promise實現Vue ElementUi同時校驗多個表單功能,實現的方法有很多種,本文給大家?guī)淼氖且环N比較完美的方案,需要的朋友可以參考下
    2018-06-06
  • uniapp使用uview的簡單案例

    uniapp使用uview的簡單案例

    uView是uni-app生態(tài)專用的UI框架,uni-app?是一個使用?Vue.js?開發(fā)所有前端應用的框架,這篇文章主要給大家介紹了關于uniapp使用uview的簡單案例,需要的朋友可以參考下
    2023-03-03
  • Vue實現首頁banner自動輪播效果

    Vue實現首頁banner自動輪播效果

    這篇文章主要為大家詳細介紹了Vue實現首頁banner自動輪播效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue axios調用接口方法報錯500 internal server error的兩種解決方法

    vue axios調用接口方法報錯500 internal server err

    前端使用axios 訪問后端接口時報錯,在瀏覽器中點擊紅色的報錯數據,本文給大家分享vue axios調用接口方法報錯500 internal server error的兩種解決方法,感興趣的朋友一起看看吧
    2023-10-10

最新評論

榆林市| 大竹县| 阳信县| 青海省| 安溪县| 蛟河市| 永嘉县| 昌黎县| 廉江市| 黄梅县| 烟台市| 安福县| 大城县| 水城县| 当涂县| 济南市| 南部县| 讷河市| 曲水县| 梁平县| 长治市| 广州市| 兰西县| 罗甸县| 沁源县| 咸丰县| 无锡市| 晋宁县| 固阳县| 江永县| 大名县| 博兴县| 扶风县| 天镇县| 南陵县| 龙州县| 合水县| 鄂托克前旗| 额济纳旗| 宝丰县| 汶川县|