成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Vue 中如何從插槽中發出數據

開發 測試
代碼部署后可能存在的BUG沒法實時知道,事后為了解決這些BUG,花了大量的時間進行log 調試,這邊順便給大家推薦一個好用的BUG監控工具 Fundebug。

[[336881]]

代碼部署后可能存在的BUG沒法實時知道,事后為了解決這些BUG,花了大量的時間進行log 調試,這邊順便給大家推薦一個好用的BUG監控工具 Fundebug。

我們知道使用作用域插槽可以將數據傳遞到插槽中,但是如何從插槽傳回來呢?

將一個方法傳遞到我們的插槽中,然后在插槽中調用該方法。我信無法發出事件,因為插槽與父組件共享相同的上下文(或作用域)。

  1. // Parent.vue 
  2. <template> 
  3.   <Child> 
  4.     <template #default="{ clicked }"
  5.       <button @click="clicked"
  6.         Click this button 
  7.       </button> 
  8.     </template> 
  9.   </Child> 
  10. </template> 
  1. // Child.vue 
  2. <template> 
  3.   <div> 
  4.     <!-- 將“handleClick” 作為 “clicked” 傳遞到我們的 slot --> 
  5.     <slot :clicked="handleClick" /> 
  6.   </div> 
  7. </template> 

在本文中,我們將介紹其工作原理,以及:

  • 從插槽到父級的 emit
  • 當一個槽與父組件共享作用域時意味著什么
  • 從插槽到祖父組件的 emit
  • 更深入地了解如何使用方法從插槽通訊回來

從插槽到父級的 emit

現在看一下Parent組件的內容:

  1. // Parent.vue 
  2. <template> 
  3.   <Child> 
  4.     <button @click=""
  5.       Click this button 
  6.     </button> 
  7.   </Child> 
  8. </template> 

我們在 Child 組件的插槽內有一個button 。單擊該按鈕時,我們要在Parent 組件內部調用一個方法。

如果 button 不在插槽中,而是直接在Parent組件的子組件中,則我們可以訪問該組件上的方法:

  1. // Parent.vue 
  2. <template> 
  3.   <Child> 
  4.     <button @click=""
  5.       Click this button 
  6.     </button> 
  7.   </Child> 
  8. </template> 

當該 button 組件位于插槽內時,也是如此:

  1. / Parent.vue 
  2. <template> 
  3.   <Child> 
  4.     <button @click="handleClick"
  5.       Click this button 
  6.     </button> 
  7.   </Child> 
  8. </template> 

之所以可行,是因為該插槽與 Parent 組件共享相同的作用域。

插槽和模板作用域

模板作用域:模板內部的所有內容都可以訪問組件上定義的所有內容。

這包括所有元素,所有插槽和所有作用域插槽。

因此,無論該按鈕在模板中位于何處,都可以訪問handleClick方法。

乍一看,這可能有點奇怪,這也是為什么插槽很難理解的原因之一。插槽最終渲染為Child 組件的子組件,但它不與Child 組件共享作用域。相反,它充當Parent 組件的子組件。

插槽向祖父組件發送數據

如果要從插槽把數據發送到祖父組件,常規的方式是使用的$emit方法:

  1. // Parent.vue 
  2. <template> 
  3.   <Child> 
  4.     <button @click="$emit('click')"
  5.       Click this button 
  6.     </button> 
  7.   </Child> 
  8. </template> 

因為該插槽與Parent 組件共享相同的模板作用域,所以在此處調用$emit將從Parent 組件發出事件。

從插槽發回子組件

與Child 組件通訊又如何呢?

我們知道如何將數據從子節點傳遞到槽中

  1. // Child.vue 
  2. <template> 
  3.   <div> 
  4.     <slot :data="data" /> 
  5.   </div> 
  6. </template> 

以及如何在作用域內的插槽中使用它:

  1. // Parent.vue 
  2. <template> 
  3.   <Child> 
  4.     <template #default="{ data }"
  5.       {{ data }} 
  6.     </template> 
  7.   </Child> 
  8. </template> 

除了傳遞數據,我們還可以將方法傳遞到作用域插槽中。如果我們以正確的方式連接這些方法,則可以使用它來與Child組件通信:

  1. // Parent.vue 
  2. <template> 
  3.   <Child> 
  4.     <template #default="{ clicked }"
  5.       <button @click="clicked"
  6.         Click this button 
  7.       </button> 
  8.     </template> 
  9.   </Child> 
  10. </template> 
  1. // Child.vue 
  2. <template> 
  3.   <div> 
  4.     <!-- Pass `handleClick` as `clicked` into our slot --> 
  5.     <slot :clicked="handleClick" /> 
  6.   </div> 
  7. </template> 

每當單擊按鈕時,就會調用Child組件中的handleClick方法。

 

作者:Michael Thiessen 譯者:前端小智 來源:medium 原文:https://stackoverflow.com/questions/50942544/emit-event-from-content-in-slot-to-parent/50943093

本文轉載自微信公眾號「 大遷世界」,可以通過以下二維碼關注。轉載本文請聯系大遷世界公眾號。

 

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2020-05-25 17:03:47

Vue嵌套插槽開發

2021-05-08 07:37:32

Vue 命名插槽

2025-03-07 10:10:48

Vue插槽slot

2012-03-16 16:43:51

大數據業務分析IBM論壇2012

2024-06-03 10:00:51

Vue 3語法插槽

2009-07-20 15:38:31

ASP.NET 2.0發送電子郵件

2021-09-03 08:23:21

Vue 插槽子組件

2024-03-18 10:15:00

HTTPNode.jsAPI

2021-12-29 07:51:21

Vue3 插件Vue應用

2022-07-15 08:45:07

slotVue3

2021-04-14 07:52:00

Vue 作用域插槽

2014-11-04 09:18:33

安全策略安全管理威脅情報

2022-11-07 11:16:30

大數據數據倉庫Hadoop

2023-05-25 14:06:45

ChatGPT人工智能工具

2023-06-28 15:00:22

CDO數據管理

2022-05-10 08:17:03

goroutine泄漏

2023-03-29 08:52:58

視覺Vue組件庫

2023-01-05 16:02:40

Linux揚聲器

2020-11-17 10:50:04

加密貨幣大數據分析大數據

2013-08-07 10:04:37

MySQL數據恢復
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩综合在线 | 久久免费大片 | 91色综合 | 91精品国产91久久久久游泳池 | 欧美在线视频二区 | 亚洲成在线观看 | 成人三级在线播放 | 天天综合日日夜夜 | 一级做a| 国产美女福利在线观看 | 久久久一区二区三区 | 国产精品完整版 | 亚洲 日本 欧美 中文幕 | 少妇一区在线观看 | 国产高清一区二区三区 | 国产伦一区二区三区久久 | 一区二区三区视频免费观看 | av入口 | 久久狠狠| 欧美一区二区小视频 | 精品国产aⅴ | 亚洲欧洲一区二区 | 国产一级在线 | 久久成人精品视频 | 久久成人精品视频 | 九九看片 | 欧美日韩一区二区三区四区 | 九色综合网 | 亚洲一区二区在线播放 | 欧美一级www片免费观看 | 国产精品黄 | 国产午夜精品视频 | 日韩在线观看中文字幕 | 精品欧美一区二区三区久久久 | 日批的视频| 国产精品黄色 | 国产精品久久久久久中文字 | 久久人人网 | 国产精品美女久久久久久免费 | 超碰在线网站 | 一区二区三区国产好 |