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

何時何地使用 Vue 的作用域插槽

開發
盡管Vue 作用域插槽是一個非常簡單的概念-讓插槽內容可以訪問子組件數據,這在設計出色的組件方面很有用處。通過將數據保留在一個位置并將其綁定到其他位置,管理不同狀態變得更加清晰。

[[392987]]

Vue插槽是一種將內容從父組件注入子組件的絕佳方法。

下面是一個基本的示例,如果我們不提供父級的任何slot位的內容,剛父級<slot>中的內容就會作為后備內容。

  1. // ChildComponent.vue 
  2. <template> 
  3.   <div> 
  4.      <slot> Fallback Content </slot> 
  5.   </div> 
  6. </template> 

然后在我們的父組件中:

  1. // ParentComponent.vue 
  2. <template> 
  3.    <child-component> 
  4.       Override fallback content 
  5.    </child-component> 
  6. </template> 

編譯后,我們的DOM將如下所示。

  1. <div> Override fallback content </div> 

我們還可以將來自父級作用域的任何數據包在在 slot 內容中。因此,如果我們的組件有一個名為name的數據字段,我們可以像這樣輕松地添加它。

  1. <template> 
  2.    <child-component> 
  3.       {{ text }}  
  4.    </child-component> 
  5. </template> 
  6.  
  7. <script> 
  8. export default { 
  9.    data () { 
  10.      return { 
  11.        text: 'hello world'
  12.      } 
  13.    } 
  14. </script> 

為什么我們需要作用域插槽

我們來看另一個例子,假設我們有一個ArticleHeader組件,data 中包含了一些文章信息。

  1. // ArticleHeader.vue 
  2. <template> 
  3.   <div> 
  4.     <slot v-bind:info="info"> {{ info.title }} </slot> 
  5.   </div> 
  6. </template> 
  7.  
  8. <script> 
  9. export default { 
  10.   data() { 
  11.     return { 
  12.       info: { 
  13.         title: 'title'
  14.         description: 'description'
  15.       }, 
  16.     } 
  17.   }, 
  18. </script> 

我們細看一下 slot 內容,后備內容渲染了 info.title。

在不更改默認后備內容的情況下,我們可以像這樣輕松實現此組件。

  1. // ParentComponent.vue 
  2. <template> 
  3.   <div> 
  4.     <article-header /> 
  5.   </div> 
  6. </template> 

在瀏覽器中,會顯示 title。

雖然我們可以通過向槽中添加模板表達式來快速地更改槽中的內容,但如果我們想從子組件中渲染info.description,會發生什么呢?

我們想像用下面的這種方式來做:

  1. // Doesn't work
  2. <template> 
  3.   <div> 
  4.     <article-header> 
  5.         {{ info.description }} 
  6.     </article-header> 
  7.   </div> 
  8. </template> 

但是,這樣運行后會報錯 :TypeError: Cannot read property ‘description’ of undefined。

這是因為我們的父組件不知道這個info對象是什么。

那么我們該如何解決呢?

引入作用域插槽

簡而言之,作用域內的插槽允許我們父組件中的插槽內容訪問僅在子組件中找到的數據。 例如,我們可以使用作用域限定的插槽來授予父組件訪問info的權限。

我們需要兩個步驟來做到這一點:

  • 使用v-bind讓slot內容可以使用info
  • 在父級作用域中使用v-slot訪問slot屬性

首先,為了使info對父對象可用,我們可以將info對象綁定為插槽上的一個屬性。這些有界屬性稱為slot props。

  1. // ArticleHeader.vue 
  2. <template> 
  3.   <div> 
  4.     <slot v-bind:info="info"> {{ info.title }} </slot> 
  5.   </div> 
  6. </template> 

然后,在我們的父組件中,我們可以使用<template>和v-slot指令來訪問所有的 slot props。

  1. // ParentComponent.vue  
  2. <template> 
  3.   <div> 
  4.     <child-component> 
  5.       <template v-slot="article"
  6.       </template> 
  7.     </child-component> 
  8.   </div> 
  9. </template> 

現在,我們所有的slot props,(在我們的示例中,僅是 info)將作為article對象的屬性提供,并且我們可以輕松地更改我們的slot以顯示description內容。

  1. // ParentComponent.vue  
  2. <template> 
  3.   <div> 
  4.     <child-component> 
  5.       <template v-slot="article"
  6.         {{ article.info.description }} 
  7.       </template> 
  8.     </child-component> 
  9.   </div> 
  10. </template> 

最終的效果如下:

總結

盡管Vue 作用域插槽是一個非常簡單的概念-讓插槽內容可以訪問子組件數據,這在設計出色的組件方面很有用處。通過將數據保留在一個位置并將其綁定到其他位置,管理不同狀態變得更加清晰。

~完,我是刷碗智,我要去刷碗了,骨得白

作者:Ashish Lahoti  譯者:前端小智  來源:codingnconcept

原文:https://learnvue.co/2021/03/when-why-to-use-vue-scoped-slots/

 

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

2009-08-01 23:08:16

2020-05-25 17:03:47

Vue嵌套插槽開發

2010-12-31 10:33:39

無線運營商光纖寬帶

2025-05-19 08:13:45

2019-10-15 09:05:07

域插槽組件前端

2021-05-08 07:37:32

Vue 命名插槽

2021-12-29 07:51:21

Vue3 插件Vue應用

2013-11-27 09:26:02

遠程公司

2020-10-21 14:54:02

RustGolang開發

2024-06-03 10:00:51

Vue 3語法插槽

2022-07-15 08:45:07

slotVue3

2020-03-24 08:32:24

vue作用域前端

2022-08-18 16:01:22

數據泄露網絡攻擊

2021-09-03 08:23:21

Vue 插槽子組件

2009-10-20 22:42:28

2021-07-12 10:23:24

物聯網傳感器洪水

2011-08-08 15:43:01

MySQL索引

2009-06-12 09:49:25

EJB事務屬性EJB事物

2021-04-12 07:34:03

Java集合框架

2021-11-26 09:00:00

數據庫數據集工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 2019中文字幕视频 | 午夜一级大片 | 欧州一区二区三区 | 视频一区欧美 | 亚洲一区二区三区四区五区中文 | 日韩精品一区二区三区在线观看 | 18gay男同69亚洲网站 | 国产精品久久久久久高潮 | 中文字幕一级毛片视频 | 日韩欧美一区二区三区四区 | 国产精品日本一区二区不卡视频 | 影音先锋亚洲资源 | 91免费入口| 男人天堂网av | 欧美在线二区 | 九九久久国产 | 欧美一区免费 | 天堂成人国产精品一区 | 一区二区三区四区在线 | 欧美一级在线视频 | 亚洲精彩视频在线观看 | 亚洲第一成年免费网站 | 亚洲不卡在线视频 | 最新毛片网站 | 成人免费看黄 | 91精品久久久久久久久久 | 亚洲精品在线看 | 一区二区免费视频 | 欧美日韩中文字幕在线 | m豆传媒在线链接观看 | 国产福利资源在线 | 九九免费视频 | 国产精品国产精品 | 国产在线一区二区三区 | 欧美专区在线 | 成人免费观看男女羞羞视频 | 中文字幕久久精品 | 欧美黄色性生活视频 | 欧美日韩一区二区电影 | 男人午夜视频 | 青青草华人在线视频 |