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

Vue中的單向數(shù)據(jù)流原則詳解

 更新時間:2025年03月24日 09:41:07   作者:Hejjon  
這篇文章主要介紹了Vue中的單向數(shù)據(jù)流原則,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Vue中的單向數(shù)據(jù)流原則

做一個 ElementUI 彈框組件的二次封裝

  • 效果如下:

點擊取消按鈕發(fā)現(xiàn)彈出如下報錯信息 

[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "dialogVisible"

錯誤的寫法:

  • 子組件 MyDialog3.vue
<!-- 子組件 -->
<template>
  <!-- elmentui 的 Dialog -->
  <el-dialog :title=title
             :visible="dialogVisible">
    <span slot="footer" class="dialog-footer">
    <el-button @click="handleCancel">取 消</el-button>
    <el-button type="primary" @click="">確 定</el-button>
  </span>
  </el-dialog>
</template>

<script>
export default {
  name: "MyDialog3",
  props: ['title', 'dialogVisible'],
  methods: {
    handleCancel() {
      this.dialogVisible = false;     // 這是錯誤的寫法, 不能在子組件中直接修改props的值
    }
  }
}
</script>

<style scoped>

</style>
  • 父組件 MyDialog3Test.vue
<template>
  <div>
    <el-button @click="btnClick">點我彈框</el-button>
    <MyDialog3
        :title="headerText"
        :dialog-visible="dialogShow">
    </MyDialog3>
  </div>
</template>

<script>
import MyDialog3 from "@/components/dialog3/MyDialog3";

export default {
  name: "MyDialog3Test",
  components: {MyDialog3},
  data() {
    return {
      headerText: '測試彈框',
      dialogShow: false,
    }
  },
  methods: {
    btnClick() {
      this.dialogShow = true;
    }
  }
}
</script>

<style scoped>

</style>

出現(xiàn)這個錯誤的原因

是父子組件在進行通信時,子組件直接修改了 props的某個屬性的值。

在 Vue.js 中,直接修改 prop(屬性)的值是被嚴格禁止的,因為這會導(dǎo)致父子組件之間的數(shù)據(jù)流變得難以追蹤和調(diào)試。Vue 設(shè)計之初就采用了單向數(shù)據(jù)流的原則,即父組件通過 prop 向下傳遞數(shù)據(jù)到子組件,而子組件應(yīng)該通過事件(如自定義事件)來通知父組件更新數(shù)據(jù),而不是直接修改 prop 的值。

正確的寫法如下:

在子組件中取消按鈕的點擊事件中不修改 dialogVisible 屬性的值, 而是通過 $emit 發(fā)送一個自定義事件 dialog-close, 在父組件中使用 @dialog-close 去申明處理這個事件. 代碼如下:

  • 子組件:

  • 父組件:

總結(jié)

在 Vue.js 中,單向數(shù)據(jù)流(One-Way Data Flow)是一個重要的設(shè)計理念,指的是數(shù)據(jù)從父組件通過 props 向下傳遞給子組件,而子組件不能直接修改這些數(shù)據(jù)。

如果子組件需要修改數(shù)據(jù),應(yīng)該通過事件通知父組件,由父組件更新數(shù)據(jù)。這種機制確保了組件之間的關(guān)系清晰,易于維護。

相關(guān)文章

  • webstorm vue開發(fā)配置方式

    webstorm vue開發(fā)配置方式

    這篇文章主要介紹了webstorm vue開發(fā)配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 通過實例解析vuejs如何實現(xiàn)調(diào)試代碼

    通過實例解析vuejs如何實現(xiàn)調(diào)試代碼

    這篇文章主要介紹了通過實例解析vuejs如何實現(xiàn)調(diào)試代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • vue 移動端注入骨架屏的配置方法

    vue 移動端注入骨架屏的配置方法

    骨架屏就是在頁面未渲染完成的時候,先用一些簡單的圖形大致勾勒出頁面的基本輪廓,給用戶帶來更好的體驗。這篇文章主要介紹了vue 移動端注入骨架屏,需要的朋友可以參考下
    2019-06-06
  • Vue3中頁面重定向的方式匯總

    Vue3中頁面重定向的方式匯總

    Vue3?中頁面重定向主要依賴?Vue?Router?4,這是一個Vue3?配套的路由庫,具體分為路由配置式重定向、編程式導(dǎo)航重定向和路由守衛(wèi)重定向三類場景,以下是各種方式匯總,需要的朋友可以參考下
    2025-12-12
  • 關(guān)于vue2響應(yīng)式缺陷的問題

    關(guān)于vue2響應(yīng)式缺陷的問題

    這篇文章主要介紹了關(guān)于vue2響應(yīng)式缺陷的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue路由$router.push()使用query傳參的實際開發(fā)使用

    vue路由$router.push()使用query傳參的實際開發(fā)使用

    在vue項目中我們用函數(shù)式編程this.$router.push跳轉(zhuǎn),用query傳遞一個對象時要把這個對象先轉(zhuǎn)化為字符串,然后在接收的時候要轉(zhuǎn)化為對象,下面這篇文章主要給大家介紹了關(guān)于vue路由$router.push()使用query傳參的實際開發(fā)使用,需要的朋友可以參考下
    2022-11-11
  • 基于axios 的responseType類型的設(shè)置方法

    基于axios 的responseType類型的設(shè)置方法

    今天小編就為大家分享一篇基于axios 的responseType類型的設(shè)置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vue限制輸入框只能輸入8位整數(shù)和2位小數(shù)的代碼

    vue限制輸入框只能輸入8位整數(shù)和2位小數(shù)的代碼

    這篇文章主要介紹了vue限制輸入框只能輸入8位整數(shù)和2位小數(shù),文中我們使用v-model加watch 實現(xiàn)這一個功能,代碼簡單易懂,需要的朋友可以參考下
    2019-11-11
  • 關(guān)于delete和Vue.delete的區(qū)別及說明

    關(guān)于delete和Vue.delete的區(qū)別及說明

    這篇文章主要介紹了關(guān)于delete和Vue.delete的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue3?中的ref與props屬性詳解

    Vue3?中的ref與props屬性詳解

    這篇文章主要介紹了Vue3?中的ref與props屬性知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-04-04

最新評論

台东市| 浙江省| 潼关县| 云阳县| 南丹县| 晋中市| 喀什市| 石楼县| 迁安市| 纳雍县| 岳阳县| 昔阳县| 金塔县| 梁山县| 长泰县| 滦南县| 和平县| 图们市| 平塘县| 西乌珠穆沁旗| 阜康市| 吴忠市| 陆良县| 宣城市| 鲁甸县| 华容县| 南华县| 高碑店市| 泾源县| 北票市| 汶川县| 景洪市| 维西| 苍南县| 宜都市| 天峨县| 上思县| 城口县| 自治县| 花莲市| 丹凤县|