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

Vue項(xiàng)目中props傳值時(shí)子組件檢測(cè)不到的問(wèn)題及解決

 更新時(shí)間:2022年08月12日 10:21:00   作者:我不是安徒生  
這篇文章主要介紹了Vue項(xiàng)目中props傳值時(shí)子組件檢測(cè)不到的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

props傳值時(shí)子組件檢測(cè)不到

我們?cè)赩ue項(xiàng)目開(kāi)發(fā)的過(guò)程中,經(jīng)常會(huì)需要在父子組件傳值,我們都知道,父子組件傳值的時(shí)候是通過(guò) props 來(lái)進(jìn)行的,但是在父組件的數(shù)據(jù)動(dòng)態(tài)改變的時(shí)候,子組件卻接收不到最新變化的數(shù)據(jù),這個(gè)時(shí)候怎么辦呢?

首先,傳值不能用駝峰命名法,因?yàn)関ue語(yǔ)法中規(guī)定HTML 中的特性名是大小寫(xiě)不敏感的,所以瀏覽器會(huì)把所有大寫(xiě)字符解釋為小寫(xiě)字符,我們需要使用短線分隔符,例如:good-id 這樣。

然后,我們可以將數(shù)據(jù)的改變用JSON.parse(JSON.stringify(data))進(jìn)行轉(zhuǎn)化,但是官網(wǎng)上又更加直接的方法,那就是對(duì)于props接收過(guò)來(lái)的數(shù)據(jù)用watch進(jìn)行監(jiān)聽(tīng),并且,如果你想初始化的時(shí)候就進(jìn)行監(jiān)聽(tīng),可以給監(jiān)聽(tīng)的屬性上加一個(gè) immediate:true

例如:

props: {
? ? personalname: {
? ? ? type: String
? ? }
? },
watch: {
? ? personalname(newValue, oldValue) {
? ? ? if (newValue !== oldValue) {
? ? ? ? this.fetch(); //這里里面放你代碼的邏輯
? ? ? }
? ? },
? ? mmediate: true,
? },

當(dāng)然,你如果想深層次的監(jiān)聽(tīng)(如:對(duì)象,,數(shù)組等引用類型值時(shí))可以在加一個(gè) deep:true

ok,快去試試吧!

props用法和傳值問(wèn)題

props的基本用法是父組件給子組件傳輸數(shù)據(jù)和驗(yàn)證

基本用法

1.在父組件中的data中定義值

2.在子組件中使用props聲明要引用哪個(gè)值

3.父組件的template中要在子組件標(biāo)簽上綁定

4.在template模板中,要使用中劃線寫(xiě)法;在script腳本中使用小駝峰

props的使用

1.靜態(tài)props

靜態(tài)即傳入的值不變化,直接在父組件中定義,子組件中使用

2.動(dòng)態(tài)props

動(dòng)態(tài)即傳入的值會(huì)變化,父組件中要?jiǎng)討B(tài)地綁定父組件的數(shù)據(jù)。

3.props驗(yàn)證

驗(yàn)證傳入的props參數(shù)的數(shù)據(jù)規(guī)格,如果不符合數(shù)據(jù)規(guī)格則發(fā)出警告,注意這個(gè)數(shù)據(jù)類型包含所有的數(shù)據(jù)類型,如基本類型和引用類型;

還可以在驗(yàn)證中加入自定義驗(yàn)證函數(shù),當(dāng)返回false時(shí)則發(fā)出警告

單向數(shù)據(jù)流:props是單向綁定的

一般來(lái)說(shuō),當(dāng)父組件的屬性變化時(shí),將傳導(dǎo)給子組件,但是反過(guò)來(lái)不會(huì)。每次父組件更新時(shí),子組件的所有 prop 都會(huì)更新為最新值。

但是,這只是限于靜態(tài)或者動(dòng)態(tài)時(shí)子組件中沒(méi)有定義局部變量去接收的情況,如果說(shuō)子組件中定義了局部變量去接收,那么父組件中的值更新時(shí)子組件是接收不到的,即子組件只能接收初始值(不管是在data中定義還是computed計(jì)算屬性定義)

第二點(diǎn),但是基本數(shù)據(jù)類型時(shí),子組件接收了父組件中的數(shù)據(jù)再進(jìn)行修改,父組件中的數(shù)據(jù)是不受影響的,也就是props的單向數(shù)據(jù)流;但是如果是對(duì)象數(shù)組這種引用類型數(shù)據(jù)的話,子組件中修改,父組件也會(huì)跟著變化的(當(dāng)然,父組件中修改子組件也會(huì)變化),原因就是它們共用一個(gè)內(nèi)存地址,相當(dāng)于淺拷貝!

解決方案:在子組件中對(duì)數(shù)據(jù)進(jìn)行局部變量接收后再進(jìn)行深拷貝??!然后用拷貝完后的數(shù)據(jù)! 看下面,一變?nèi)?/p>

總結(jié)一下props傳值的注意點(diǎn)

1.若是子組件定義局部變量去接收,則不接受父組件數(shù)據(jù)更新,即只能接收初始值

2.基本數(shù)據(jù)類型修改,子組件不會(huì)影響父組件,但是若是引用數(shù)據(jù)類型數(shù)組對(duì)象的話,兩者相互影響,共用同一個(gè)內(nèi)存地址,相當(dāng)于淺拷貝

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • el-table表頭全選框隱藏或禁用設(shè)置方法

    el-table表頭全選框隱藏或禁用設(shè)置方法

    有時(shí)候我們使用el-table的選擇框時(shí),如果涉及修改、刪除時(shí),可能一次只允許用戶選擇一條,這樣的話如果使用頂部的全選復(fù)選框就不合適了,這篇文章主要給大家介紹了關(guān)于el-table表頭全選框隱藏或禁用設(shè)置的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • Vue 2.X的狀態(tài)管理vuex記錄詳解

    Vue 2.X的狀態(tài)管理vuex記錄詳解

    這篇文章主要介紹了Vue 2.X的狀態(tài)管理vuex記錄的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家的理解和學(xué)習(xí)具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03
  • Vue實(shí)現(xiàn)移動(dòng)端日歷的示例代碼

    Vue實(shí)現(xiàn)移動(dòng)端日歷的示例代碼

    工作中遇到一個(gè)需求是根據(jù)日歷查看某一天/某一周/某一月的睡眠報(bào)告,但是找了好多日歷組件都不是很符合需求,只好自己手寫(xiě)一個(gè)日歷組件,順便記錄一下,希望對(duì)大家有所幫助
    2023-04-04
  • Vue中props的使用詳解

    Vue中props的使用詳解

    props屬性是父子組件之間的通信橋梁。這篇文章主要介紹了Vue中props的使用,需要的朋友可以參考下
    2018-06-06
  • Vue實(shí)現(xiàn)兄弟組件間的聯(lián)動(dòng)效果

    Vue實(shí)現(xiàn)兄弟組件間的聯(lián)動(dòng)效果

    這篇文章主要介紹了Vue實(shí)現(xiàn)兄弟組件間的聯(lián)動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • vue實(shí)現(xiàn)的封裝全局filter并統(tǒng)一管理操作示例

    vue實(shí)現(xiàn)的封裝全局filter并統(tǒng)一管理操作示例

    這篇文章主要介紹了vue實(shí)現(xiàn)的封裝全局filter并統(tǒng)一管理操作,結(jié)合實(shí)例形式詳細(xì)分析了vue封裝全局filter及相關(guān)使用技巧,需要的朋友可以參考下
    2020-02-02
  • Vue3全局配置axios的兩種方式總結(jié)

    Vue3全局配置axios的兩種方式總結(jié)

    在實(shí)際項(xiàng)目開(kāi)發(fā)中,幾乎每個(gè)組件中都會(huì)用到?axios?發(fā)起數(shù)據(jù)請(qǐng)求,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Vue3全局配置axios的兩種方式,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Vue中l(wèi)ocalStorage的用法和監(jiān)聽(tīng)localStorage值的變化

    Vue中l(wèi)ocalStorage的用法和監(jiān)聽(tīng)localStorage值的變化

    這篇文章主要介紹了Vue中l(wèi)ocalStorage的用法和監(jiān)聽(tīng)localStorage值的變化,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Vue中使用裝飾器的方法詳解

    Vue中使用裝飾器的方法詳解

    裝飾器是一種與類相關(guān)的語(yǔ)法糖,用來(lái)包裝或者修改類或者類的方法的行為,其實(shí)裝飾器就是設(shè)計(jì)模式中裝飾者模式的一種實(shí)現(xiàn)方式,下面這篇文章主要給大家介紹了關(guān)于Vue中使用裝飾器的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • 前端實(shí)現(xiàn)pdf預(yù)覽功能的全過(guò)程(基于vue)

    前端實(shí)現(xiàn)pdf預(yù)覽功能的全過(guò)程(基于vue)

    這篇文章主要給大家介紹了關(guān)于前端實(shí)現(xiàn)pdf預(yù)覽功能的相關(guān)資料,前端實(shí)現(xiàn)預(yù)覽最好的效果還是PDF,不會(huì)出現(xiàn)一些文字錯(cuò)亂和亂碼的問(wèn)題,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09

最新評(píng)論