真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Vue中如何使用嵌套插槽

本篇文章給大家分享的是有關Vue中如何使用嵌套插槽,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比長洲網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式長洲網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋長洲地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

無循環(huán)實現(xiàn)循環(huán)

通常,當我們要渲染元素或組件的列表時,可以使用v-for指令,但這次我們希望完全擺脫它。

那么,我們?nèi)绾卧诓皇褂醚h(huán)的情況下渲染項目列表呢?就是使用 「遞歸」。

我們可以使用遞歸來渲染項目列表。過程并不會復雜,我們來看看怎么做。

遞歸表示一個列表

我在大學里最喜歡的課程之一是[“編程語言概念”][1]。

對我來說,最有趣的部分是探索函數(shù)式編程和邏輯編程,并了解與命令式編程的區(qū)別(Javascript 和最流行的語言是命令式編程)。

這門課讓我真正了解如何使用遞歸,因為在純函數(shù)語言中,一切都是遞歸。不管怎樣,從那門課我學到了可以使用遞歸地表示一個列表。

與使用數(shù)組不同,每個列表是一個值(頭)和另一個列表(尾)。

[head, tail]

例如要表示列表[1、2、3],則可以遞歸方式表示為:

[1, [2, [3, null]]]

我們必須以某種方式結束列表,因此我們使用null而不是另一個數(shù)組(也可以使用空數(shù)組)。

看到這里,你或許就可以明白了,我們可以使用此概念并將其應用于我們的組件。相反,我們將遞歸嵌套組件以表示列表。

我們最終將渲染出這樣的內(nèi)容。注意我們“l(fā)ist”的嵌套結構:

   1   
     2     
       3     
   
 

誠然,這與v-for渲染的效果并不完全相同,但這也不是本練習的重點。

構建組件

首先,我們將解決遞歸渲染項目列表的問題。

(1) 使用遞歸來渲染列表

這次我們使用一個普通數(shù)組,而不是使用前面介紹的遞歸列表:

[1, 2, 3]

這里要討論兩種情況:

  • 基本情形-渲染列表中的第一項

  • 遞歸情形-渲染項目,然后沉浸下一個列表

我們把[1,2,3]傳給v-for

我們希望獲取列表中的第一項,即1,并顯示它

現(xiàn)在,該組件將渲染1,就像我們期望的那樣。

但是我們不能只渲染第一個值并停止。我們需要渲染值,然后還渲染列表的其余部分:

我們不傳遞整個list數(shù)組,而是刪除第一項并傳遞新數(shù)組。第一個項目我們已經(jīng)打印出來了,所以沒有必要保留它。

順序是這樣的:

  • 我們將[1,2,3]傳遞到v-for中進行渲染

  • 我們的v-for組件渲染1,然后將[2,3]傳遞到下一個v-for進行渲染

  • 取[2,3]并渲染2,然后將[3]傳遞到下一個v-for

  • 最后一個v-for組件渲染出3,我們已經(jīng)打印出列表!

現(xiàn)在,我們的Vue應用程序的結構如下所示:

                        

可以看到,我們有幾個v-for組件,它們彼此嵌套在一起。最后一件事,我們需要停止遞歸

最終,渲染完所有項后,我們需要停止遞歸操作。

(2) 遞歸嵌套的插槽

現(xiàn)在,組件可以正常工作,但是我們也希望它與作用域內(nèi)插槽一起使用,因為這樣可以自定義渲染每個項的方式:

    

(3) 嵌套插槽

一旦弄清楚了如何遞歸地嵌套插槽,就會對它癡迷一樣的感嘆:

  • 嵌套n級的插槽

  • 遞歸插槽

  • 包裝組件將一個插槽轉換為多個插槽

首先,我們將簡要介紹嵌套插槽的工作方式,然后介紹如何將它們合并到v-for組件中。

假設我們有三個組件:Parent、Child和Grandchild。我們希望傳遞來自Parent組件的一些內(nèi)容,并在Grandchild組件中渲染它。

從Parent開始,我們傳遞一些內(nèi)容:

// Parent.vue 

我們在Child組件中做一些事情,將在稍后介紹。然后我們的Grandchild組件獲取插槽并渲染內(nèi)容:

// Grandchild.vue 

那么,這個Child組件是什么樣的?

我們需要它從Parent組件獲取內(nèi)容并將其提供給Grandchild組件,因此我們將兩個不同的插槽連接在一起。

// Child.vue 

請記住,元素渲染出作為插槽傳遞到組件的內(nèi)容。因此,我們將從“Parent”中獲取該內(nèi)容,然后將其渲染到“Grandchild”插槽中。

(4) 添加作用域插槽

與嵌套作用域插槽唯一不同的是,我們還必須傳遞作用域數(shù)據(jù)。將其添加到v-for中,我們現(xiàn)在得到以下信息:

        
 

首先讓我們看一下基本情況。

如果沒有提供插槽,則默認元素內(nèi)部的內(nèi)容,并像以前一樣渲染list[0]。但是如果我們提供了一個slot,它會將其渲染出來,并通過slot作用域將列表項傳遞給父組件。

這里的遞歸情況類似。如果我們將插槽傳遞給v-for,它將在下一個v-for的插槽中進行渲染,因此我們得到了嵌套。它還從作用域槽中獲取item并將其傳遞回鏈。

以上就是Vue中如何使用嵌套插槽,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享標題:Vue中如何使用嵌套插槽
文章路徑:http://weahome.cn/article/psjssi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部