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

vue父子組件動態(tài)傳值的幾種方式及注意問題詳解

 更新時間:2022年12月24日 08:52:38   作者:xin_shou123  
這篇文章主要介紹了vue父子組件動態(tài)傳值的幾種方式及注意問題詳解,需要的朋友可以參考下

1.vue父組件向子組件動態(tài)傳值的兩種方法

在一些項目需求中需要父組件向子組件動態(tài)傳值,比如我這里的需求是,父組件動態(tài)通過axios獲取返回的圖片url數(shù)組然后傳給子組件,上傳圖片的子組件拿到該數(shù)組后進(jìn)行遍歷并展示圖片,因為有時候獲取到的會是空,所以這里要考慮到動態(tài)獲取。

方法有兩種,

vue父組件向子組件動態(tài)傳值方法一:

props傳值,這里注意一個問題,傳過來的值需要用watch監(jiān)聽并賦值,否則這里獲取到的是空數(shù)組

父組件:

<uploadImg :width="200" :height="200" name="productImage" size="750px*750px" ref="productImage" :src-list="this.productImage"></uploadImg>
this.productImage=res.data.cover;

這里把通過后臺返回的數(shù)組賦值給this.productImage,然后把該數(shù)組傳給子組件定義的props屬性src-list

export default {
  name: '***',
  props: {
    srcList: {

    }
  },
  data() {
  	uploadImg: ''
  }
}

子組件:

watch代碼

watch:{
    srcList(curVal,oldVal){
     if(curVal){
       this.uploadImg=curVal;
      }
   },
}

vue父組件向子組件動態(tài)傳值方法二:

通過ref屬性,父組件調(diào)用子組件的方法,把要傳的數(shù)組作為參數(shù)傳給子組件,子組件獲取該參數(shù),并使用

父組件:

this.$refs.productImage.getSrcList(res.data.cover);

子組件:

getSrcList(val){
this.uploadImg=val;
}

同理,子組件向父組件傳值,如果是動態(tài)改變的,也要記得加watch函數(shù),動態(tài)改變之后執(zhí)行的操作寫在watch里,比如 this.$emit 的函數(shù)!

2.vue父組件中獲取子組件中的數(shù)據(jù)

<FormItem label="上傳頭像" prop="image">
  <uploadImg :width="150" :height="150" :name="'avatar'" size="150px*150px" ref="avatar"></uploadImg>
</FormItem>
<FormItem label="上傳營業(yè)執(zhí)照" prop="businessLicence">
  <uploadImg :width="350" :height="200" :name="'businessLicence'" size="350px*200px" ref="businessLicence"></uploadImg>
</FormItem>

自己寫了個上傳圖片的子組件,父組件需要獲取到子組件上傳的圖片地址,

vue父組件中獲取子組件中數(shù)據(jù)方法一:

給相應(yīng)的子組件標(biāo)簽上加 ref = “avatar”

父組件在最后提交的時候獲取this.$refs.avatar.相應(yīng)數(shù)據(jù) 即可,因為在這里才能保證圖片已經(jīng)上傳,否則如果圖片沒上傳,拿到的值一定為空。

vue父組件中獲取子組件中數(shù)據(jù)方法二:

$emit()

/*
    子組件
*/
<template>
    <input type='file' @change="changeUrl" />
</template>
<script>
export default {
    methods: {
        changeUrl(e) {
            this.$emit('changeUrl', e.currentTarget.files[0].path)
        }
    }
}
</script>
/*
    父組件
*/
<template>
    <FormItem label="上傳營業(yè)執(zhí)照" prop="businessLicence">
        <uploadImg :width="350" :height="200" :name="'license'" size="350px*200px" @changeUrl="getUrl"></uploadImg>
    </FormItem>
</template>
<script>
export default {
    methods: {
        getUrl(path) {
            //這個就是你要的path,并且會雙向綁定
        }
    }
}
</script>

當(dāng)使用this.$emit方法獲取的時候,如果子組件想要給父組件傳入多個值,則可以寫多個參數(shù),父組件在獲取的時候獲取多個參數(shù)的值即可

//父組件
getUrl(path1,path2) {
console.log(path1,path2)
}

注意問題:

1、父組件相應(yīng)事件寫在該子組件上
2、子組件如果并沒有click事件觸發(fā),也沒有類似本例input需要change事件觸發(fā),則在created或者mounted函數(shù)中讓該函數(shù)加載即可
3、子組件向父組件傳值需 是父組件 用到了 ,如果多個父組件引用了該子組件,則只有傳值的時候用的子組件來自哪個父組件,這個父組件才可以接收到值,其他父組件獲取不到子組件傳的值。

以上就是vue父子組件動態(tài)傳值的幾種方式及注意問題詳解的詳細(xì)內(nèi)容,更多關(guān)于vue父子組件動態(tài)傳值的幾種方式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于Vue2實現(xiàn)歌曲播放和歌詞滾動效果

    基于Vue2實現(xiàn)歌曲播放和歌詞滾動效果

    這篇文章主要介紹了如何基于Vue2實現(xiàn)歌曲播放和歌詞滾動效果,文中通過代碼示例和圖文講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以自己動手試一下
    2024-09-09
  • Vue2.x與Vue3.x中路由鉤子的區(qū)別詳解

    Vue2.x與Vue3.x中路由鉤子的區(qū)別詳解

    這篇文章主要介紹了Vue2.x與Vue3.x中路由鉤子的區(qū)別,分別介紹了路由鉤子的分類,路由配置守衛(wèi)鉤子以及組件內(nèi)守衛(wèi)鉤子等有需要的朋友可以借鑒參考下
    2021-09-09
  • vue使用混入定義全局變量、函數(shù)、篩選器的實例代碼

    vue使用混入定義全局變量、函數(shù)、篩選器的實例代碼

    本文主要是給大家分享利用混入mixins來實現(xiàn)全局變量和函數(shù)。這種方法優(yōu)點是ide會有方法、變量、篩選器提示。對vue中 利用混入定義全局變量、函數(shù)、篩選器的相關(guān)知識感興趣的朋友,跟隨小編一起看看吧
    2019-07-07
  • 解決vue 格式化銀行卡(信用卡)每4位一個符號隔斷的問題

    解決vue 格式化銀行卡(信用卡)每4位一個符號隔斷的問題

    這篇文章主要介紹了vue 格式化銀行卡(信用卡)每4位一個符號隔斷的問題,本文給大家分享了解決方法,需要的朋友可以參考下
    2018-09-09
  • Vue子組件調(diào)用父組件方法案例詳解

    Vue子組件調(diào)用父組件方法案例詳解

    這篇文章主要介紹了Vue子組件調(diào)用父組件方法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 詳解Vue3 Teleport 的實踐及原理

    詳解Vue3 Teleport 的實踐及原理

    這篇文章主要介紹了Vue3 Teleport 組件的實踐及原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • vue v-model動態(tài)生成詳解

    vue v-model動態(tài)生成詳解

    本篇文章給大家分享了vue v-model動態(tài)生成的相關(guān)知識點以及實例代碼,有興趣的朋友參考學(xué)習(xí)下。
    2018-06-06
  • Vue實現(xiàn)點擊時間獲取時間段查詢功能

    Vue實現(xiàn)點擊時間獲取時間段查詢功能

    這篇文章主要為大家詳細(xì)介紹了Vue實現(xiàn)點擊時間獲取時間段查詢功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 解析vue.js中常用v-指令

    解析vue.js中常用v-指令

    本文以click為例給大家介紹vue.js中常用v-指令,可以用 v-on 指令監(jiān)聽 DOM 事件,并在觸發(fā)時運行一些 JavaScript代碼,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2021-10-10
  • vue系列之動態(tài)路由詳解【原創(chuàng)】

    vue系列之動態(tài)路由詳解【原創(chuàng)】

    下面小編就為大家?guī)硪黄獀ue系列之動態(tài)路由詳解【原創(chuàng)】。小編覺得挺不錯的,現(xiàn)在就想給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論

婺源县| 荣昌县| 南澳县| 滨海县| 兴安县| 桓台县| 富顺县| 游戏| 广汉市| 华坪县| 开江县| 华蓥市| 循化| 神木县| 大厂| 介休市| 天柱县| 康定县| 来宾市| 澳门| 彭山县| 霍城县| 凤山市| 鄂州市| 子长县| 枣阳市| 当雄县| 鞍山市| 广德县| 冷水江市| 成武县| 札达县| 厦门市| 延吉市| 枞阳县| 河西区| 嘉鱼县| 正阳县| 宽甸| 那曲县| 麻江县|