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

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

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

Vue傳值

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

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

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

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

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

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

方式一

通過父組件給子組件綁定一個自定義事件實現(xiàn):子給父傳數(shù)據(jù)(使用@v-on

子組件:通過$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>

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

<template>
   <div class="parent">
     <p>父組件接手到的內(nèi)容:{{ value}}</p>
     <Son  @son="getValue"></Son> 
      <!-- 監(jiān)聽子組件觸發(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實現(xiàn):子給父傳遞數(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)聽子組件觸發(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Vue3中對VDOM的改進

    詳解Vue3中對VDOM的改進

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

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

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

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

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

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

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

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

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

    Vue分頁器組件使用方法詳解

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

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

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

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

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

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

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

    vue使用國密SM4進行加密、解密的過程

    國密SM4算法是一種對稱加密算法,適用于對稱密鑰加密和解密的場景,這篇文章主要介紹了vue使用國密SM4進行加密、解密,需要的朋友可以參考下
    2023-07-07

最新評論