網站首頁 編程語言 正文
目錄
一、背景
二、4種方法
1、子組件向父組件傳遞一個值
2、子組件向父組件傳遞一個值,并攜帶額外參數
3、子組件向父組件傳遞多個值
4、子組件向父組件傳遞多個值,并攜帶額外參數
一、背景
詳情頁集成了很多子組件, 但是父組件的一個上傳文件的地方回顯拿不到最新的文件個數, 但這里有需要上傳的文件判空處理。 首先想到的是回顯的時候直接獲取文件集合的大小即可, 但是刪除文件后還是更新不了最新的值, 所以子只能子組件傳更新最新的值給父組件做判斷了。
二、4種方法
1、子組件向父組件傳遞一個值
子組件:
var num= this.fileList().size() this.$emit('change', num);
父組件:
??<!-- 在父組件中使用子組件 --> <editable-cell :num="num" :inputType="inputType" @change="handleChange($event)" /> // 事件處理函數 async handleChange(value) { this.num = value; }
在使用子組件時,綁定change函數的事件處理函數也可以寫成如下格式:?
<editable-cell :num="num" :inputType="inputType" @change="handleChange" />
綁定事件處理函數時,可以不帶括號,形參則默認為事件對象,如果綁定時帶上了括號,再想使用事件對象則需要傳入$event作為實參。
2、子組件向父組件傳遞一個值,并攜帶額外參數
record為額外參數( 本文的額外參數都拿record做舉例 )。
子組件:
this.$emit('change', this.value);
父組件:
<!-- 插槽 --> <template slot="planned_amount" slot-scope="text, record"> <!-- 在父組件中使用子組件 --> <editable-cell :num="num" :inputType="inputType" @change="handleChange(record,$event)" /> </template> // 事件處理函數 async handleChange(record,value) { console.log(record,value) },
綁定事件處理函數時,record和$event的順序不做要求,但是按照vue事件綁定的習慣,$event通常放在實參列表末尾。
3、子組件向父組件傳遞多個值
子組件:
// 向父組件傳遞了兩個值 this.$emit('change', this.value,this.text);
父組件:
<editable-cell :text="text" :inputType="inputType" @change="handleChange" /> // 事件處理函數 async handleChange(param1,param2) { console.log(param1,param2) },
綁定事件處理函數時,不能攜帶括號!!!如果攜帶括號并且在括號內加了$event,只能拿到子組件傳遞過來的第一個參數。
4、子組件向父組件傳遞多個值,并攜帶額外參數
record為額外參數( 本文的額外參數都拿record做舉例 )。
子組件:
// 向父組件傳遞了兩個值 this.$emit('change', this.value,this.text);
父組件:
<template slot="planned_amount" slot-scope="text, record"> <!-- 在父組件中使用子組件 --> <editable-cell :text="text" :inputType="inputType" @change="handleChange(record,arguments)" /> </template> // 事件處理函數 async handleChange(record,args) { console.log(record,args) },
arguments是方法綁定中的一個關鍵字,內部包括了所有方法觸發時傳遞過來的實參。arguments和額外參數的位置誰先誰后不做要求,建議arguments放后面。
有用請點贊,養成良好習慣!
疑問、交流、鼓勵請留言!
原文鏈接:https://libusi.blog.csdn.net/article/details/127353961
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2023-07-18 獲取Linux和windows的MAC地址
- 2024-03-02 前端directus對接單點登錄
- 2022-09-29 Shell之function函數的定義及調用示例_linux shell
- 2022-07-29 Pytest框架?conftest.py文件的使用詳解_python
- 2023-07-05 Redis性能瓶頸:如何優化大key問題?
- 2022-12-01 Go?sync?WaitGroup使用深入理解_Golang
- 2022-08-19 WPF使用Geometry繪制幾何圖形_C#教程
- 2022-06-21 C語言實現順序表的全操作詳解_C 語言
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支