1. 程式人生 > >vue slot插槽及內容分發

vue slot插槽及內容分發

  1. 單個插槽
    父元件

    <template>
      <div id="app">
        <hello-world>
          <!--倘若子元件裡沒有slot,那這段html程式碼會被棄用-->
          <div>我是父元件裡得內容,我要在子元件的slot中展示出來</div>
          <br>
        </hello-world>
      </div>
    </template>
    <script>
      import HelloWorld from './components/HelloWorld'
      export default {
        data(){
          return {}
        },
        components:{
          HelloWorld
        }
      }
    </script>
    <style>
    </style>
    

    子元件

    <template>
      <div class="chind">
        <div>
          <slot></slot>
        </div>
      </div>
    </template>
    <script>
      export default {}
    </script>
    <style scoped>
    </style>
    
  2. 具名插槽
    父元件

    <template>
      <div id="app">
        <hello-world :slotitems="items">
          <div>假髮</div> 
          <div slot="test">我是父元件裡得內容,我要在子元件的slot中展示出來</div> 
        </hello-world>
      </div>
    </template>
    <script>
      import HelloWorld from './components/HelloWorld'
      export default {
        data(){
          return { }
        },
        components:{
          HelloWorld
        }
      }
    </script>
    <style>
    </style>
    

    子元件

    <template>
      <div class="chind">
        <br/>
        <div>
          <slot></slot><!--“假髮”將會被展示在這個沒有名字的slot中--> 
          <slot name="test"></slot>
        </div>
      </div>
    </template>
    
    <script>
      export default {}
    </script>
    <style scoped>
    </style>
    
    
  3. 插槽作用域
    父元件

    <template>
      <div id="app">
        <hello-world :slotitems="items">
          <div slot="test">我是父元件裡得內容,我要在子元件的slot中展示出來</div>
          <br>
          <template slot-scope="props">
            <span>{{ props.cname }}</span>
            <span>{{ props.text }}</span>
            <span>{{ props.age }}</span>
          </template>
        </hello-world>
      </div>
    </template>
    <script>
      import HelloWorld from './components/HelloWorld'
      export default {
        data(){
          return {
            items:{text:'插槽練習' , cname:'張三' }
          }
        },
        components:{
          HelloWorld
        }
      }
    </script>
    <style>
    </style>
    
    

    子元件

    <template>
      <div class="chind">	
        <div>
          <slot name="test"></slot>
          <slot :cname="slotitems.cname"></slot>
          <slot :text="slotitems.text"></slot>
          <slot age="18"></slot>
        </div>
      </div>
    </template>
    
    <script>
      export default {
        props: ['slotitems'],//主要是通過props來接受父元件傳過來的值
        }
    </script>
    <style scoped>
    </style>
    
    

注:適用於元件重用但是又有不相同的地方

相關推薦

vue slot內容分發

單個插槽 父元件 <template> <div id="app"> <hello-world> <!--倘若子元件裡沒有slot,

vue slot的使用

場景 color header head fff back 不同 傳遞 nbsp slot插槽的使用場景 父組件向子組件傳遞dom時會用到插槽 作用域插槽:當同一個子組件想要在不同的父組件裏展示不同的狀態,可以使用作用域插槽。展示的狀態由父組件來決定 註:想要修改父

vue--slot

父元件向子元件傳遞資料的方式—slot插槽的方式 父元件將資料插入到子元件指定的位置 在父元件裡引用子元件後,在子元件的標籤裡直接插入一個內容或者一個DOM結構 在子元件裡設定一個slot元件,通知父元件要傳的DOM結構等資料可以通過這個插槽傳遞過來 父子元件之間有了約定了,那麼寫在子元件標籤裡的內容

深入理解vue slot

單個插槽 只使用這個標籤的話,可以將父元件放在子元件的內容,放到想讓他顯示的地方 具名插槽 將放在子元件裡的不同html標籤放在不同的位置 父元件在要分發的標籤裡新增 slot=’name’ 屬性 子元件在對應分發的位置的slot標籤裡,新增nam

vue slot使用個人理解

最近專案不忙,看了看vue,看到了slot,練習了下,與大家分享下,希望有用~ 個人理解:用法等同於“佔位符”,佔據一定的“位置”,進行不同的回顯,可以設定預設值,效果類似於v-if,但是功能更豐富 slot用法一(基礎用法) 子元件程式碼設定如下: <

vue----slot的使用

vue官方文件在slot這部分講解的並不是很詳細,這裡用更通俗的語言進行描述。根據官檔的標題來開始吧插槽內容假如父元件的程式碼如下(children為註冊的子元件):<divid='app'> <div>這裡是父元件</div> <

vue slot的小技巧

如果想使用插槽,又不想新增都一個節點,那就把父元件的插槽的標籤也改為slot 這樣就可以了:如下 子元件: <slot name="header"> </slot> 父元件: <slotslot="header"> <el

vue slot理解

新手上路,根據vue官方手冊記錄學習內容,主要知識點如下. 插槽內容 命名插槽 預設插槽內容 插槽作用域 插槽內容 插槽是用於向子元件分發內容的,當在父元件中應用子元件時,子元件標籤內的內容會分發到子元件模板中具有slot標籤的位置.(如果子

vue <slot>slot> 用於展現使用模板時候 內部的內容

起因 在vue元件使用的過程中,出現在模板的內部的內容會被預設替換,比如下面的例子 <div id="app4"> <temp1>在模板使用的時候內部寫的內容&

slot 的作用域用法(摘自vue.js 官網)

定制 body vue.js pan 有效 當我 zh-cn 所有 operator 有的時候你希望提供的組件帶有一個可從子組件獲取數據的可復用的插槽。例如一個簡單的 <todo-list> 組件的模板可能包含了如下代碼: <ul> <

vue知識點總結 --- slot

插槽 // 父元件 <div> <item> <span>666</span> </item> </div> // item子元件 <div> <slot>

Vue中的 slot的簡單應用——input中巢狀按鈕的效果

場景: 需要一種類似於把按鈕放在input最右邊的效果 解決辦法: 1,發現在Vue中怎麼巢狀都出不了效果,網上搜到的一種html寫法(但是和Vue中的el-table-column有些影響): <form role="form"> <div cla

Vue一個案例引發「內容分發slot」的最全總結

今天我們繼續來說說 Vue,目前一直在自學 Vue 然後也開始做一個專案實戰,我一直認為在實戰中去發現問題然後解決問題的學習方式是最好的,所以我在學習一些 Vue 的理論之後,就開始自己利用業餘時間做了一個專案,然後通過專案中的一些案例進行總結。 今天我們來說說 Vue 中的內容分發 <slot>

Vuejs slot(顯示子元件標籤下的內容)

  <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device

VUEslot 個人理解

個人理解:               1.通過插槽可以接收到父元件中的內容,也就是父元件把內容分發給子元件.               2.父元件分發的內容在子元件的那個位置顯示,依賴於slot 在子元件中的位置. 例如:        父元件:        

(十二)vue.js元件——元件進階之slot

概述 我們已經知道,現在的web應用及其頁面,基本都是由各個元件組合形成,那麼這個時候我們【如何較好的組合各個元件】就成為了我們需要關心的問題了 場景 想象下,對於各個元件組合使用的場景,如果我們要在佈

vueslot

插槽是寫在子元件上,用啦留給父級新增內容的位置介面; 1. 父級裡的 <template :is='子標籤名'>父插入內容</template>標籤,裡的內容       slot 標籤位置 規定了父插入內容的位置。 2.slot標籤 有

vueslot

插槽(Slot)是Vue提出來的一個概念,正如名字一樣,插槽用於決定將所攜帶的內容,插入到指定的某個位置,從而使模板分塊,具有模組化的特質和更大的重用性。插槽的原理和Angular中的ng-transclude十分類似,本篇也是對所學內容做一個梳理。Slot(插槽)分發內容形

vue.jsSlot的用法與具名、作用域的使用

1、基本用法 插槽指允許將自定義的元件像普通標籤一樣插入內容 import Vue from 'vue' // 定義元件componentOne const compoentOne = { template: ` <di

8.Vue元件三---slot

主要內容:  1. 什麼是插槽 2. 元件的插槽 3. 插槽的使用方法 4. 插槽的具名 5. 變數的作用域 6. slot的作用域   一. 什麼是插槽呢? 1. 生活中的插槽有哪些呢? usb插槽, 插線板插槽 2. 插槽有什麼作用? 同樣的插線板, 可以插電視機, 電冰