Vue插槽:slot悦陋、slot-scope與指令v-slot使用方法區(qū)別講解

不具名插槽

<body>
   <div id="app">
      <Test>
         <div>slot插槽占位內(nèi)容</div>
      </Test>
   </div>
   <template id="test">
      <div>
         <slot></slot>//定義插槽
         <h3>這里是test組件</h3>
      </div>
   </template>
   
</body>

<script>
   Vue.component('Test',{
      template:"#test"
   });

   new Vue({
      el:"#app",
   })
</script>
image.png

具名插槽

<body>
   <div id="app">
      <Test>
         <div slot="header">這里是頭部</div>//具名插槽使用
         <div slot="footer">這里是尾部</div>
      </Test>
   </div>
   <template id="test">
      <div>
         <slot name="header"></slot>//具名插槽
         <h3>這里是Test組件</h3>
         <slot name="footer"></slot>
      </div>

   </template>
</body>
<script>
   Vue.component(
      'Test',{
         template:"#test"
   });
   new Vue({
      el:"#app"
   })

</script>

image.png

v-slot
v-slot在組件中使用slot進(jìn)行占位時(shí)蜈彼,也是在slot標(biāo)簽內(nèi)使用name 屬性給slot插槽定義一個(gè)名字。但是在html內(nèi)使用時(shí)就有些不同了俺驶。需要使用template模板標(biāo)簽幸逆,template標(biāo)簽內(nèi),使用v-slot指令綁定插槽名暮现,標(biāo)簽內(nèi)寫入需要添加的內(nèi)容还绘。

<body>
   <div id="app">
      <Test>
         <template v-slot:header>//v-slot指令使用插槽
            <h2>slot頭部?jī)?nèi)容</h2>
         </template>
         
         <p>直接插入組件的內(nèi)容</p>
         
         <template v-slot:footer>
            <h2>slot尾部?jī)?nèi)容</h2>
         </template>
      </Test>
   </div>
   
   <template id ='test'>
      <div class="container">
         <header>
            <!-- 我們希望把頁(yè)頭放這里 -->
            <slot name = "header"></slot>//具名插槽
         </header>
         <section>
            主體內(nèi)容部分
         </section>
         <footer>
            <!-- 我們希望把頁(yè)腳放這里 -->
            <slot name = 'footer'></slot>
         </footer>
      </div>
   </template>
   
</body>

<script>
   Vue.component('Test',{
      template:"#test"
   });
   new Vue({
      el:"#app"
   })
</script>

image.png

作用域插槽:
slot-scope使用:

在組件模板中書寫所需slot插槽,并將當(dāng)前組件的數(shù)據(jù)通過(guò)v-bind綁定在slot標(biāo)簽上栖袋。

在組件使用時(shí)拍顷,通過(guò)slot-scope=“scope”,接收組件中slot標(biāo)簽上綁定的數(shù)據(jù)。

通過(guò)scope.xxx就可以使用綁定數(shù)據(jù)了

<body>
   <div id="app">
      <Test>
         <div slot="default" slot-scope="scope">//作用域插槽的用法(slot-scope)
            {{ scope.msg }}
         </div>
         
      </Test>
   </div>

   <template id="test">
      <div>
         <slot name="default" :msg="msg"> </slot>
         <p>這里是test組件</p>
      </div>
   </template>
</body>
<script>
   new Vue({
      el:"#app",
      components:{
         'Test':{
            template:"#test",
            data(){
               return {
                  msg:"你好"
               }
            },
         }
      }
   })
</script>
image.png

作用域插槽:v-slot的用法

<body>
   
   <div id="app">
      <Test>
         <template v-slot:header="scope">//v-slot定義作用域插槽
            <div>
                  <h3>slot</h3>
                  <p> {{scope.msg}} </p>
            </div>
         </template>
      </Test>
   </div>
   
   <template id="test">
      <div>
         <slot name="header":msg="msg"></slot>
         <p>這里是test組件</p>
      </div>
   </template>
   
</body>
<script>
   Vue.component('Test',{
      template:"#test",
      data(){
         return {
            msg:'這里是頭部'
         }
      }
   });

   new Vue({

   }).$mount("#app")
</script>

image.png

Vue2.6.0中使用v-slot指令取代了特殊特性slot與slot-scope塘幅,但是從上述案例可以看出昔案,v-slot在使用時(shí),需要在template標(biāo)簽內(nèi)电媳,這點(diǎn)大家在應(yīng)用時(shí)要注意踏揣。

轉(zhuǎn)載自:https://blog.csdn.net/sunhuaqiang1/article/details/106742853
參考:https://blog.csdn.net/u012733501/article/details/107046903/
參考:https://www.cnblogs.com/bulici/p/11733840.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市匾乓,隨后出現(xiàn)的幾起案子捞稿,更是在濱河造成了極大的恐慌,老刑警劉巖拼缝,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娱局,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡咧七,警方通過(guò)查閱死者的電腦和手機(jī)衰齐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)猪叙,“玉大人娇斩,你說(shuō)我怎么就攤上這事⊙妫” “怎么了犬第?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)芒帕。 經(jīng)常有香客問我歉嗓,道長(zhǎng),這世上最難降的妖魔是什么背蟆? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任鉴分,我火速辦了婚禮哮幢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘志珍。我一直安慰自己橙垢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布伦糯。 她就那樣靜靜地躺著柜某,像睡著了一般。 火紅的嫁衣襯著肌膚如雪敛纲。 梳的紋絲不亂的頭發(fā)上喂击,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音淤翔,去河邊找鬼翰绊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛旁壮,可吹牛的內(nèi)容都是我干的监嗜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼寡具,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼秤茅!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起童叠,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎课幕,沒想到半個(gè)月后厦坛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乍惊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年杜秸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片润绎。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撬碟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出莉撇,到底是詐尸還是另有隱情呢蛤,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布棍郎,位于F島的核電站其障,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏涂佃。R本人自食惡果不足惜励翼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一蜈敢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汽抚,春花似錦抓狭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至膨蛮,卻和暖如春叠纹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敞葛。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工誉察, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惹谐。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓持偏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親氨肌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸿秆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360