六十一、Vue中父子組件傳值和組件參數(shù)校驗

      網(wǎng)友投稿 1201 2025-04-06

      @Author:Runsen


      @Date:2020/10/17

      寫在前面:我是「Runsen」,熱愛技術(shù)、熱愛開源、熱愛編程。技術(shù)是開源的、知識是共享的。大四棄算法轉(zhuǎn)前端,需要每天的日積月累,需要強大的自控自制能力。

      文章目錄

      父組件向子組件傳值

      子組件向父組件傳值

      組件參數(shù)校驗

      后言

      父組件向子組件傳值

      傳值步驟

      ① 子組件在 props中創(chuàng)建一個屬性,用以接收父組件傳過來的數(shù)據(jù);

      ② 父組件中注冊子組件。通過屬性綁定( v-bind:)的形式,把需要傳遞給子組件的數(shù)據(jù)傳遞到子組件的內(nèi)部,供子組件使用;

      ③ 在子組件標(biāo)簽中添加子組件 props中創(chuàng)建的屬性;

      ④ 把需要傳給子組件的值賦給該屬性

      代碼示例

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      父組件可以修改傳給子組件的值,但是子組件不能修改從父組件傳遞過來的值,因為可能會有其他組件共用這個值,因此Vue會報[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: "count"的警告錯誤。

      `

      解決的方法:子組件可以將這個組件拷貝出來后操作拷貝值,最終的代碼示例

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      子組件向父組件傳值

      子組件傳值給父組件流程:

      1.子組件綁定事件

      2.子組件的事件處理函數(shù)中通過$emit()向外觸發(fā)事件,可攜帶參數(shù)

      3.父組件監(jiān)聽子組件觸發(fā)的事件

      4.在父組件的事件處理函數(shù)中拿到子組件傳遞的參數(shù),處理子組件的請求

      子組件對自己無法操作的數(shù)據(jù)向父組件拋出請求(通過$emit()向外觸發(fā)事件),這個請求中可攜帶相關(guān)數(shù)據(jù),等待父組件接收這個響應(yīng)然后自行處理這個請求后更新的數(shù)據(jù)重新被傳遞給子組件。

      代碼示例

      六十一、Vue中父子組件傳值和組件參數(shù)校驗

      =

      {{total}}

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      總結(jié):父組件向子組件傳值用私有的data數(shù)據(jù)拷貝props數(shù)據(jù),再操作data來實現(xiàn)。子組件傳值給父組件一共四個流程。

      在組件傳值過程中,無論是父傳子、還是子傳父,它們都有一個共同點就是有一個中間介質(zhì)。父傳子的介質(zhì)是 props中的屬性,子傳父的介質(zhì)是自定義事件。

      父子組件的關(guān)系可以總結(jié)為props向下傳遞,事件向上傳遞。父組件通過props給子組件下發(fā)數(shù)據(jù),子組件通過事件給父組件發(fā)送信息。

      父組件通過 v-bind:綁定參數(shù)傳給子組件,子組件通過 props接收這個參數(shù)。

      在組件的最底層開始寫事件,由最底層組件逐步向上$emit事件流,并攜帶相應(yīng)參數(shù),最后在父組件內(nèi)完成總的數(shù)據(jù)處理。

      組件參數(shù)校驗

      props 可以是數(shù)組或?qū)ο螅糜诮邮諄碜愿附M件的數(shù)據(jù)。props 可以是簡單的數(shù)組,或者使用對象作為替代,對象允許配置高級選項,如類型檢測、自定義驗證和設(shè)置默認(rèn)值。

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      參考資料:

      慕課網(wǎng)Vue2.5->2.6->3.0 開發(fā)去哪兒網(wǎng)App 從零基礎(chǔ)入門到實戰(zhàn)項目開發(fā)

      https://mp.weixin.qq.com/s/yvt9mnQwcydUgg3QqdaWeA

      后言

      據(jù)說,放張小姐姐覺得照片可以提高閱讀量,圖是來源學(xué)校的2020新生。

      這個時代做什么事,門檻都變得好高,想當(dāng)個宅男,你買得起房子嗎?看看學(xué)校的新生,養(yǎng)下眼,這種白日夢不要做!

      Vue

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:【云駐共創(chuàng)】物聯(lián)網(wǎng)究竟是什么?有哪些領(lǐng)域?
      下一篇:【高并發(fā)線程安全策略
      相關(guān)文章
      亚洲成AV人片一区二区| 亚洲中文字幕无码爆乳av中文 | 久久久久亚洲Av无码专| 成人亚洲性情网站WWW在线观看| 亚洲Av无码国产情品久久| 无码专区一va亚洲v专区在线| 亚洲高清乱码午夜电影网| 亚洲娇小性xxxx| 国产精品亚洲一区二区麻豆| 亚洲娇小性xxxx色| 四虎必出精品亚洲高清| 一本色道久久88亚洲精品综合| 亚洲日韩精品A∨片无码加勒比| 一本天堂ⅴ无码亚洲道久久| 亚洲熟伦熟女专区hd高清| 亚洲乱码无人区卡1卡2卡3| 亚洲av无码有乱码在线观看| 四虎亚洲国产成人久久精品| 精品亚洲成α人无码成α在线观看 | 亚洲av无码一区二区三区乱子伦| 日韩亚洲一区二区三区| 久久亚洲精品中文字幕无码| 亚洲欧洲在线观看| 亚洲成人福利网站| 亚洲精品第一国产综合野| 亚洲第一成年网站视频 | 亚洲五月激情综合图片区| 久久久久亚洲AV成人无码网站 | 精品国产亚洲AV麻豆| 亚洲精品国产高清不卡在线| 国产亚洲精品拍拍拍拍拍| 亚洲精品中文字幕无码蜜桃| 久久亚洲国产中v天仙www | 久久亚洲国产精品| 亚洲欧洲中文日产| 亚洲精品女同中文字幕| 亚洲av无码乱码在线观看野外| 不卡一卡二卡三亚洲| 亚洲激情中文字幕| 亚洲av无码国产综合专区| 亚洲精品天堂无码中文字幕|