markdown插槽

VuePress 實現(xiàn)了一套針對 Markdown 的內(nèi)容分發(fā) API。通過這個特性,你可以將你的文檔分割成多個片段,以便于在布局組件中靈活組合。

為什么需要 Markdown 插槽

Markdown 文件是元數(shù)據(jù)(頁面內(nèi)容、配置等)的提供者,而布局組件負責消費他們。我們可以通過 frontmatter 來定義一些普通數(shù)據(jù)類型的元數(shù)據(jù),但對于 Markdown / HTML 這種涉及到編譯前后差異的復雜元數(shù)據(jù),frontmatter 卻無能能力。

Markdown 插槽便解決了這一類問題。

具名插槽

你可以通過下述的語法來定義一個具名 Markdown 插槽:

::: slot name

:::

在布局組件中利用 Content 組件來使用該插槽:

<Content slot-key="name"/>

提示
這里我們使用的是 slot-key 而不是 slot,這是因為在 Vue 中,slot 是一個保留的 prop 名。

插槽的默認內(nèi)容

默認情況下,一個 Markdown 文件中的普通內(nèi)容將會成為 Markdown 插槽的默認內(nèi)容,你可以直接使用 Content 組件來訪問它:

<Content/>

例子

假設你的布局組件如下:

<template>
  <div class="container">
    <header>
      <Content slot-key="header"/>
    </header>
    <main>
      <Content/>
    </main>
    <footer>
      <Content slot-key="footer"/>
    </footer>
  </div>
</template>

如果一個頁面的 markdown 的內(nèi)容是這樣:

::: slot header
# Here might be a page title
:::

- A Paragraph
- Another Paragraph

::: slot footer
Here's some contact info
:::

那么這一頁最終被渲染出的 HTML 將會是:

<div class="container">
  <header>
    <div class="content header">
      <h1>Here might be a page title</h1>
    </div>
  </header>
  <main>
    <div class="content default">
      <ul>
        <li>A Paragraph</li>
        <li>Another Paragraph</li>
      </ul>
    </div>
  </main>
  <footer>
    <div class="content footer">
      <p>Here's some contact info</p>
    </div>
  </footer>
</div>

請注意:

  1. 和 Vue 本身提供的 slot 機制不太相同,每個 Content 分發(fā)的內(nèi)容都會被一個 div 所包裹,其 class 是 content 和 slot 的名字。
  2. 請確保所定義的 slot 的唯一性。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 認識插槽Slot 在開發(fā)中,我們會經(jīng)常封裝一個個可復用的組件: 我們會通過props傳遞給組件一些數(shù)據(jù),讓組件來進...
    靜昕媽媽蘆培培閱讀 1,272評論 0 1
  • Test Vue.js Slots in Jest 測試Vue.js中的Slots插槽 Learn how to ...
    Revontulet閱讀 3,105評論 0 1
  • 一、什么是插槽? 插槽就是子組件中,提供給父組件使用的一個占位符,用 表示,父組件可以在這個占位符中填充任何模塊...
    笑該動人d閱讀 1,042評論 1 4
  • Vue-Slot 插槽詳解 什么是插槽 定義 實現(xiàn)功能 將自定義內(nèi)容插入 組件中指定的位置 自定義內(nèi)容 (包括不限...
    進擊的一二閱讀 618評論 0 0
  • vue插槽slot 一、前言 vue官方文檔中在"組件基礎"內(nèi)容中提到組件可以通過插槽分發(fā)內(nèi)容,那插槽是怎么使用的...
    追尋1989閱讀 595評論 0 2

友情鏈接更多精彩內(nèi)容