偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Vue 中如何從插槽中發(fā)出數(shù)據(jù)

開發(fā) 測試
代碼部署后可能存在的BUG沒法實時知道,事后為了解決這些BUG,花了大量的時間進行l(wèi)og 調(diào)試,這邊順便給大家推薦一個好用的BUG監(jiān)控工具 Fundebug。

[[336881]]

代碼部署后可能存在的BUG沒法實時知道,事后為了解決這些BUG,花了大量的時間進行l(wèi)og 調(diào)試,這邊順便給大家推薦一個好用的BUG監(jiān)控工具 Fundebug。

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

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

  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
  • 當(dāng)一個槽與父組件共享作用域時意味著什么
  • 從插槽到祖父組件的 emit
  • 更深入地了解如何使用方法從插槽通訊回來

從插槽到父級的 emit

現(xiàn)在看一下Parent組件的內(nèi)容:

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

我們在 Child 組件的插槽內(nèi)有一個button 。單擊該按鈕時,我們要在Parent 組件內(nèi)部調(diào)用一個方法。

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

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

當(dāng)該 button 組件位于插槽內(nèi)時,也是如此:

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

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

插槽和模板作用域

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

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

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

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

插槽向祖父組件發(fā)送數(shù)據(jù)

如果要從插槽把數(shù)據(jù)發(fā)送到祖父組件,常規(guī)的方式是使用的$emit方法:

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

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

從插槽發(fā)回子組件

與Child 組件通訊又如何呢?

我們知道如何將數(shù)據(jù)從子節(jié)點傳遞到槽中

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

以及如何在作用域內(nèi)的插槽中使用它:

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

除了傳遞數(shù)據(jù),我們還可以將方法傳遞到作用域插槽中。如果我們以正確的方式連接這些方法,則可以使用它來與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> 

每當(dāng)單擊按鈕時,就會調(diào)用Child組件中的handleClick方法。

 

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

本文轉(zhuǎn)載自微信公眾號「 大遷世界」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系大遷世界公眾號。

 

責(zé)任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2020-05-25 17:03:47

Vue嵌套插槽開發(fā)

2021-05-08 07:37:32

Vue 命名插槽

2025-03-07 10:10:48

Vue插槽slot

2012-03-16 16:43:51

大數(shù)據(jù)業(yè)務(wù)分析IBM論壇2012

2024-06-03 10:00:51

Vue 3語法插槽

2009-07-20 15:38:31

ASP.NET 2.0發(fā)送電子郵件

2021-09-03 08:23:21

Vue 插槽子組件

2024-03-18 10:15:00

HTTPNode.jsAPI

2021-12-29 07:51:21

Vue3 插件Vue應(yīng)用

2022-11-07 11:16:30

大數(shù)據(jù)數(shù)據(jù)倉庫Hadoop

2023-05-25 14:06:45

ChatGPT人工智能工具

2014-11-04 09:18:33

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

2022-07-15 08:45:07

slotVue3

2021-04-14 07:52:00

Vue 作用域插槽

2023-06-28 15:00:22

CDO數(shù)據(jù)管理

2023-03-29 08:52:58

視覺Vue組件庫

2022-05-10 08:17:03

goroutine泄漏

2023-01-05 16:02:40

Linux揚聲器

2020-11-17 10:50:04

加密貨幣大數(shù)據(jù)分析大數(shù)據(jù)

2010-04-20 10:12:42

OraclePL
點贊
收藏

51CTO技術(shù)棧公眾號