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

Vue組件通信傳遞數(shù)據(jù)的三種方式

 更新時(shí)間:2023年04月21日 10:19:07   作者:Wen先森  
這篇文章主要介紹了Vue組件通信傳遞數(shù)據(jù)的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

Vue傳值

Vue.js是一個(gè)組件化的前端開(kāi)發(fā)框架,支持父子組件之間的消息傳遞和數(shù)據(jù)通信。子組件向父組件傳遞消息的過(guò)程稱(chēng)為“子傳父”或“props down,events up”。

具體而言,在Vue.js中,每個(gè)組件都可以看作是一個(gè)獨(dú)立的實(shí)例,它們之間可以通過(guò)特定的Props和Events屬性進(jìn)行雙向綁定和通信。子組件在初始化時(shí)可以接收來(lái)自父組件的數(shù)據(jù),并通過(guò)props屬性綁定這些數(shù)據(jù)。當(dāng)子組件需要向父組件發(fā)送事件或數(shù)據(jù)時(shí),可以使用$emit方法觸發(fā)相應(yīng)的事件,然后由父組件定義的v-on指令監(jiān)聽(tīng)并執(zhí)行相應(yīng)的操作。

以下是一些關(guān)于Vue中props$emit的常用概念:

  • props:在父組件中通過(guò)屬性的方式向子組件傳遞數(shù)據(jù)或方法,子組件中可以通過(guò)props屬性來(lái)獲取相關(guān)數(shù)據(jù)或方法,從而實(shí)現(xiàn)父子組件之間的信息共享。
  • emit:在子組件中通過(guò)emit觸發(fā)自定義事件,并攜帶需要傳遞的數(shù)據(jù),父組件可以通過(guò)v-on監(jiān)聽(tīng)到這些事件,然后執(zhí)行相應(yīng)的操作進(jìn)行響應(yīng)。
  • sync修飾符: 可以簡(jiǎn)化子組件向父組件派發(fā)事件的過(guò)程,添加.sync修飾符后,在父組件中更新子組件的狀態(tài)時(shí),無(wú)需手動(dòng)監(jiān)聽(tīng)子組件觸發(fā)的事件,而是可以直接通過(guò)v-model語(yǔ)法糖進(jìn)行處理,簡(jiǎn)單來(lái)說(shuō)就是對(duì)一個(gè)prop進(jìn)行雙向綁定。

總之,“子傳父”是Vue中非常重要的一個(gè)概念,它可以幫助我們更好地維護(hù)組件間的數(shù)據(jù)和功能的分離,同時(shí)也能提高程序的可讀性和可維護(hù)性。對(duì)于在實(shí)際開(kāi)發(fā)過(guò)程中遇到的“子傳父”的問(wèn)題,需要按照Vue框架的規(guī)范和約定來(lái)解決問(wèn)題。

傳遞數(shù)據(jù)的三種方式

方式一

通過(guò)父組件給子組件綁定一個(gè)自定義事件實(shí)現(xiàn):子給父?jìng)鲾?shù)據(jù)(使用@v-on

子組件:通過(guò)$emit觸發(fā)父組件上的自定義事件,發(fā)送參數(shù)

<template>
   <div class="son">
     <button @click="setValue">子傳值</button>
   </div>
 </template>
 <script>
 export default {
   name: "son",
   data(){
     return {
       value:'子傳父的內(nèi)容'
     }
   },
   methods:{
     setValue(){
       this.$emit('son',this.value)//觸發(fā)transfer方法,this.value為向父組件傳遞的數(shù)據(jù)
     }
   }
 }
 </script>

父組件:通過(guò)綁定自定義事件,接受子組件傳遞過(guò)來(lái)的參數(shù)

<template>
   <div class="parent">
     <p>父組件接手到的內(nèi)容:{{ value}}</p>
     <Son  @son="getValue"></Son> 
      <!-- 監(jiān)聽(tīng)子組件觸發(fā)的自定義事件事件,然后調(diào)用getValue方法 -->
   </div>
 </template>
 <script>
 import son from './Son'
 export default {
   name: 'parent',
   data () {
     return {
       msg: '父組件',
       value:'',
     }
   },
   components:{son},
   methods:{
     getValue(value){
       this.value= value
     }
   }
 }
 </script>

方式二

props實(shí)現(xiàn):子給父?jìng)鬟f數(shù)據(jù)

子組件:

<template>
   <div class="son">
     <button @click="setValue">子傳值</button>
   </div>
 </template>
 <script>
 export default {
   name: "son",
   props: ['getValue'],
   data(){
     return {
       value:'子傳父的內(nèi)容'
     }
   },
   methods:{
     setValue(){
       this.getValue('son',this.value)//this.value為向父組件傳遞的數(shù)據(jù)
     }
   }
 }
 </script>

父組件:

<template>
   <div class="parent">
     <p>父組件接手到的內(nèi)容:{{ value}}</p>
     <Son  :getValue="getValue"></Son> 
   </div>
 </template>
 <script>
 import son from './Son'
 export default {
   name: 'parent',
   data () {
     return {
       msg: '父組件',
       value:'',
     }
   },
   components:{son},
   methods:{
     getValue(value){
       this.value= value
     }
   }
 }
 </script>

方式三

使用ref

子組件:

<template>
   <div class="son">
     <button @click="setValue">子傳值</button>
   </div>
 </template>
 <script>
 export default {
   name: "son",
   data(){
     return {
       value:'子傳父的內(nèi)容'
     }
   },
   methods:{
     setValue(){
       this.$emit('son',this.value)//觸發(fā)transfer方法,this.value為向父組件傳遞的數(shù)據(jù)
     }
   }
 }
 </script>

父組件:

<template>
   <div class="parent">
     <p>父組件接手到的內(nèi)容:{{ value}}</p>
     <Son  ref="son" ></Son> 
      <!-- 監(jiān)聽(tīng)子組件觸發(fā)的自定義事件事件,然后調(diào)用getValue方法 -->
   </div>
 </template>
 <script>
 import son from './Son'
 export default {
   name: 'parent',
   data () {
     return {
       msg: '父組件',
       value:'',
     }
   },
   components:{son},
    mounted(){
      setTimeout(() =>{
        // 函數(shù)體
        this.$refs.son.$on('son', this.getValue)
      }, 3000)
   },  
   methods:{
     getValue(value){
       this.value= value
     }
   }
 }
 </script>

到此這篇關(guān)于Vue組件通信傳遞數(shù)據(jù)的三種方式的文章就介紹到這了,更多相關(guān)Vue組件通信內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Vue3中對(duì)VDOM的改進(jìn)

    詳解Vue3中對(duì)VDOM的改進(jìn)

    這篇文章主要介紹了詳解Vue3中對(duì)VDOM的改進(jìn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • vue實(shí)現(xiàn)圖片拖拽功能

    vue實(shí)現(xiàn)圖片拖拽功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)圖片拖拽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Vue利用高德地圖API實(shí)現(xiàn)實(shí)時(shí)天氣

    Vue利用高德地圖API實(shí)現(xiàn)實(shí)時(shí)天氣

    這篇文章主要為大家詳細(xì)介紹了Vue如何利用高德地圖API實(shí)現(xiàn)實(shí)時(shí)天氣,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • VUE實(shí)現(xiàn)日歷組件功能

    VUE實(shí)現(xiàn)日歷組件功能

    本篇文章主要介紹了VUE實(shí)現(xiàn)日歷組件功能,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 使用 vue.js 構(gòu)建大型單頁(yè)應(yīng)用

    使用 vue.js 構(gòu)建大型單頁(yè)應(yīng)用

    本文給大家詳細(xì)介紹了如何使用使用 vue.js腳手架工具vue-cli構(gòu)建大型單頁(yè)應(yīng)用的方法,非常的實(shí)用,有需要的小伙伴可以參考下
    2018-02-02
  • Vue分頁(yè)器組件使用方法詳解

    Vue分頁(yè)器組件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Vue分頁(yè)器組件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 用electron 打包發(fā)布集成vue2.0項(xiàng)目的操作過(guò)程

    用electron 打包發(fā)布集成vue2.0項(xiàng)目的操作過(guò)程

    這篇文章主要介紹了用electron 打包發(fā)布集成vue2.0項(xiàng)目的操作步驟,把electron 加入到自己項(xiàng)目中各種不兼容,升級(jí)版本踩坑無(wú)數(shù)個(gè),今天通過(guò)本文給大家分享下詳細(xì)過(guò)程,需要的朋友可以參考下
    2022-10-10
  • vue + typescript + 極驗(yàn)登錄驗(yàn)證的實(shí)現(xiàn)方法

    vue + typescript + 極驗(yàn)登錄驗(yàn)證的實(shí)現(xiàn)方法

    這篇文章主要介紹了vue + typescript + 極驗(yàn) 登錄驗(yàn)證的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Vue實(shí)現(xiàn)登錄以及登出詳解

    Vue實(shí)現(xiàn)登錄以及登出詳解

    本篇文章主要介紹了vue實(shí)現(xiàn)登陸登出的實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-09-09
  • vue使用國(guó)密SM4進(jìn)行加密、解密的過(guò)程

    vue使用國(guó)密SM4進(jìn)行加密、解密的過(guò)程

    國(guó)密SM4算法是一種對(duì)稱(chēng)加密算法,適用于對(duì)稱(chēng)密鑰加密和解密的場(chǎng)景,這篇文章主要介紹了vue使用國(guó)密SM4進(jìn)行加密、解密,需要的朋友可以參考下
    2023-07-07

最新評(píng)論