亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue中的Props(不可變狀態(tài))

 更新時間:2018年09月29日 09:54:40   作者:roamingcode  
這篇文章主要介紹了Vue中的Props(不可變狀態(tài)),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

組件接受的選項(xiàng)大部分與Vue實(shí)例一樣,而選項(xiàng)props是組件中非常重要的一個選項(xiàng)。在 Vue 中,父子組件的關(guān)系可以總結(jié)為 props down, events up。父組件通過 props 向下傳遞數(shù)據(jù)給子組件,子組件通過 events 給父組件發(fā)送消息。接下來通過本文給大家介紹Vue中Props,一起看看吧!

單向數(shù)據(jù)流

所有的 prop 都使得其父子 prop 之間形成了一個單向下行綁定:父級 prop 的更新會向下流動到子組件中,但是反過來則不行。這樣會防止從子組件意外改變父級組件的狀態(tài),從而導(dǎo)致你的應(yīng)用的數(shù)據(jù)流向難以理解。

額外的,每次父級組件發(fā)生更新時,子組件中所有的 prop 都將會刷新為最新的值。這意味著你不應(yīng)該在一個子組件內(nèi)部改變 prop。如果你這樣做了,Vue 會在瀏覽器的控制臺中發(fā)出警告。

問題

下面簡要說一下上面發(fā)生的警告現(xiàn)象,或許大多數(shù)人都遇到過.

使用場景

父組件

<BackLogModal :isModalOpen="isModalOpen" @closeModal="handleCloseModal">
</BackLogModal>

  • BackLogModal為一個彈窗組件,通過isModalOpen決定彈窗的開閉狀態(tài)
  • 傳入的isModalOpen是父組件的一個變量,類型為boolean
  • closeModal監(jiān)聽子組件派發(fā)的自定義事件closeModal

子組件

// 使用了typescript
export default class BackLogModal extends Vue {
  @Prop()
  private isModalOpen: boolean;

  private handleConfirm(): void {
    this.$Message.info('Clicked ok');
    this.$emit('closeModal');
  }

  private handleClose(): void {
    this.$Message.info('Clicked cancal');
    this.$emit('closeModal');
  }
}
  • 通過@Prop()注解獲取父組件傳遞過來的isModalOpen屬性
  • 頁面 通過v-model與屬性isModalOpen進(jìn)行綁定
  • 由于彈窗組件在關(guān)閉時會自動設(shè)置isModalOpen的值為false,這里直接修改的就是父組件傳入的isModalOpen屬性,由于props屬性是單向數(shù)據(jù)流,具有不可變狀態(tài),這是頁面就會拋出警告

解決問題

export default class BackLogModal extends Vue {
  private isOpen: boolean = false;

  @Prop()
  private isModalOpen: boolean;

  @Watch('isModalOpen')
  private watchModalOpen(newVal: boolean, oldVal: boolean) {
    console.log(newVal, oldVal);
    if (newVal !== oldVal) {
      this.isOpen = newVal;
    }
  }

  private handleConfirm(): void {
    this.$Message.info('Clicked ok');
    this.$emit('closeModal');
  }

  private handleClose(): void {
    this.$Message.info('Clicked cancal');
    this.$emit('closeModal');
  }
}
  • 定義一個子組件私有變量isOpen與頁面彈窗就行綁定
  • 使用@Watch('isModalOpen')監(jiān)聽父組件傳入的isModalOpen屬性,一旦值發(fā)生改變,便更新本地變量isOpen,確保彈窗的正常的打開與關(guān)閉

以上所述是小編給大家介紹的Vue中的Props(不可變狀態(tài)),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 一文帶你掌握vue3中偵聽器的使用

    一文帶你掌握vue3中偵聽器的使用

    偵聽器和計(jì)算屬性都可以用于偵聽響應(yīng)式數(shù)據(jù)的變化,如果需要在數(shù)據(jù)變化后執(zhí)行操作,修改依賴項(xiàng),那么就應(yīng)該使用偵聽器,下面就跟隨小編一起來學(xué)習(xí)一下vue3中偵聽器的使用吧
    2023-09-09
  • vue對于低版本瀏覽器兼容問題的解決思路

    vue對于低版本瀏覽器兼容問題的解決思路

    很多時候使用vue開發(fā)的項(xiàng)目,由于無法在低版本瀏覽器上運(yùn)行,所以需要解決下,下面這篇文章主要給大家介紹了關(guān)于vue對于低版本瀏覽器兼容問題的解決思路,需要的朋友可以參考下
    2023-02-02
  • vue3?ts編寫echart是tooltip無法展示的解決

    vue3?ts編寫echart是tooltip無法展示的解決

    這篇文章主要介紹了vue3?ts編寫echart是tooltip無法展示的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue等兩個接口都返回結(jié)果再執(zhí)行下一步的實(shí)例

    vue等兩個接口都返回結(jié)果再執(zhí)行下一步的實(shí)例

    這篇文章主要介紹了vue等兩個接口都返回結(jié)果再執(zhí)行下一步的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 如何搭建一個完整的Vue3.0+ts的項(xiàng)目步驟

    如何搭建一個完整的Vue3.0+ts的項(xiàng)目步驟

    這篇文章主要介紹了如何搭建一個完整的Vue3.0+ts的項(xiàng)目步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Vue常見報(bào)錯以及解決方案實(shí)例總結(jié)

    Vue常見報(bào)錯以及解決方案實(shí)例總結(jié)

    最近做了一個比較老的vue項(xiàng)目,啟動居然各種報(bào)錯,下面這篇文章主要給大家介紹了關(guān)于Vue常見報(bào)錯以及解決方案的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • vue組件掛載到全局方法的示例代碼

    vue組件掛載到全局方法的示例代碼

    這篇文章主要介紹了vue組件掛載到全局方法的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • vue中img src 動態(tài)加載本地json的圖片路徑寫法

    vue中img src 動態(tài)加載本地json的圖片路徑寫法

    這篇文章主要介紹了vue中的img src 動態(tài)加載本地json的圖片路徑寫法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • 淺談vite和webpack的性能優(yōu)化和區(qū)別

    淺談vite和webpack的性能優(yōu)化和區(qū)別

    本文主要介紹了淺談vite和webpack的區(qū)別,從性能優(yōu)化的幾個方便講解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • vue3響應(yīng)式Proxy與Reflect的理解及基本使用實(shí)例詳解

    vue3響應(yīng)式Proxy與Reflect的理解及基本使用實(shí)例詳解

    這篇文章主要為大家介紹了vue3響應(yīng)式Proxy與Reflect的理解及基本使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評論