国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

千鋒教育前端Vue3.0全套視頻教程(Kerwin2023版,Vue.js零基礎(chǔ)

2023-07-19 20:20 作者:bili_23614833655  | 我要投稿

Vue中組件要如何接收模板內(nèi)容?

在某些場景中,我們可能想要為子組件傳遞一些模板片段,讓子組件在它們的組件中渲染這些片段。

舉例來說,這里有一個(gè)?<FancyButton>?組件,可以像這樣使用:

<FancyButton>

?Click me! <!-- 插槽內(nèi)容 -->

</FancyButton>

而?<FancyButton>?的模板是這樣的:

<button class="fancy-btn">

?<slot></slot> <!-- 插槽出口 -->

</button>

<slot>?元素是一個(gè)插槽出口?(slot outlet),標(biāo)示了父元素提供的插槽內(nèi)容?(slot content) 將在哪里被渲染。

最終渲染出的 DOM 是這樣:

<button class="fancy-btn">Click me!</button>

通過使用插槽,<FancyButton>?僅負(fù)責(zé)渲染外層的?<button>?(以及相應(yīng)的樣式),而其內(nèi)部的內(nèi)容由父組件提供。

理解插槽的另一種方式是和下面的 JavaScript 函數(shù)作類比,其概念是類似的:

// 父元素傳入插槽內(nèi)容

FancyButton('Click me!')


// FancyButton 在自己的模板中渲染插槽內(nèi)容

function FancyButton(slotContent) {

?return `<button class="fancy-btn">

???${slotContent}

??</button>`

}

插槽內(nèi)容可以是任意合法的模板內(nèi)容,不局限于文本。例如我們可以傳入多個(gè)元素,甚至是組件:

<FancyButton>

<span style="color:red">Click me!</span>

<AwesomeIcon name="plus" />

</FancyButton>

通過使用插槽,<FancyButton>?組件更加靈活和具有可復(fù)用性。現(xiàn)在組件可以用在不同的地方渲染各異的內(nèi)容,但同時(shí)還保證都具有相同的樣式。

Vue 組件的插槽機(jī)制是受原生 Web Component?<slot>?元素的啟發(fā)而誕生,同時(shí)還做了一些功能拓展,這些拓展的功能我們后面會學(xué)習(xí)到。

作用域插槽:

插槽內(nèi)容可以訪問到父組件的數(shù)據(jù)作用域,因?yàn)椴宀蹆?nèi)容本身是在父組件模板中定義的。舉例來說:

<span>{{ message }}</span>

<FancyButton>{{ message }}</FancyButton>

這里的兩個(gè)?{{ message }}?插值表達(dá)式渲染的內(nèi)容都是一樣的。

插槽內(nèi)容無法訪問子組件的數(shù)據(jù)。Vue 模板中的表達(dá)式只能訪問其定義時(shí)所處的作用域,這和 JavaScript 的詞法作用域規(guī)則是一致的。換言之:

父組件模板中的表達(dá)式只能訪問父組件的作用域;子組件模板中的表達(dá)式只能訪問子組件的作用域。


千鋒教育前端Vue3.0全套視頻教程(Kerwin2023版,Vue.js零基礎(chǔ)的評論 (共 條)

分享到微博請遵守國家法律
吉木萨尔县| 龙口市| 张北县| 察隅县| 武隆县| 霍林郭勒市| 武川县| 黔西| 东城区| 吕梁市| 望江县| 龙岩市| 东城区| 柞水县| 大悟县| 花莲市| 乌什县| 康定县| 如皋市| 呼玛县| 刚察县| 民权县| 朝阳区| 瑞金市| 寻甸| 万源市| 长春市| 岳普湖县| 彭州市| 徐州市| 龙里县| 德州市| 巩留县| 寿宁县| 那曲县| 通化市| 祥云县| 调兵山市| 扶余县| 拉萨市| 高州市|