vue默認插槽的理解與實例代碼

什麼是插槽

插槽就是子組件中的提供給父組件使用的一個占位符,用<slot></slot> 表示,父組件可以在這個占位符中填充任何模板代碼,如 HTML、組件等,填充的內容會替換子組件的<slot></slot>標簽。

默認插槽的理解

就是利用 完全標簽() 在它完全標簽裡寫相應的配置(比如:我們需要的功能)

然後利用 默認插槽這個標簽 把寫好的會放到這個插槽裡去(這個插槽一般式存在於子組件的,所以就可以把父組件寫好的東西給子組件瞭)

關於寫在完全標簽裡的配置的樣式我們既可以寫在父組件又可以寫在子組件中(因為,1、樣式寫在父組件時候,樣式已經被渲染好瞭然後放入子組件;2、樣式寫在子組件時,把配置放入插槽,而插槽所在子組件有css樣式會給我們的配置渲染的)

代碼片段

①Category.vue

<template>
  <div class="category">
    <h3>{{ title }}分類</h3>

    <!-- 定義一個默認插槽,那麼App.vue中相應的組件標簽裡標簽體的內容會往這個插槽中放置 -->
    <slot></slot>
  </div>
</template>

<script>
export default {
  name: "Category",
  props: ["title"],
};
</script>

<style>
.category {
  background-color: skyblue;
  width: 200px;
  height: 300px;
}
h3 {
  text-align: center;
  background-color: orange;
}
</style>

②App.vue

<template>
  <div class="container">
    <Category title="美食">
      <img
        src="https://zqcdn.itzjj.cn/static/skin/mfw0321/static/picture/dj_scv.jpg"
        alt="1"
      />
    </Category>
    <Category title="遊戲" :listData="games">
      <ul>
        <!-- 這時候因為變量直接在app.vue中所以可以直接去遍歷game
        遍歷完瞭再利用插槽的功能傳遞給Category.vue -->
        <li v-for="(g, index) in games" :key="index">
          {{ g }}
        </li>
      </ul></Category
    >

    <Category title="電影" :listData="films">
      <!--  controls 可以讓video可以播放 -->
      <video
        controls
        src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"
      ></video>
    </Category>
  </div>
</template>

<script>
import Category from "./components/Category";

export default {
  name: "App",
  components: { Category },
  data() {
    return {
      foods: ["火咕", "你肉", "丸子"],
      games: ["紅警在線", "穿越火線", "勁舞團"],
      films: ["《教父》", "《拆彈專傢》", "《牛逼》"],
    };
  },
};
</script>

<style>
.container {
  display: flex;
  justify-content: space-around;
}

video {
  width: 100%;
}

img {
  width: 100%;
}
</style>

總結

到此這篇關於vue默認插槽的文章就介紹到這瞭,更多相關vue默認插槽內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: