欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于vue 的slot分發(fā)內(nèi)容 (多個(gè)分發(fā))

 更新時(shí)間:2022年03月29日 16:58:03   作者:黑色咖啡 Ken  
這篇文章主要介紹了關(guān)于vue 的slot分發(fā)內(nèi)容 (多個(gè)分發(fā)),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

slot分發(fā)內(nèi)容 (多個(gè)分發(fā))

 組件模板-元素可以用一個(gè)特殊的屬性 name 來配置如何分發(fā)內(nèi)容。多個(gè) slot 可以有不同的名字。具名 slot 將匹配內(nèi)容片段中有對應(yīng) slot 特性的元素

<style media="screen">
? ? .panel{
? ? ? margin:10px;width:150px;
? ? ? border:1px solid #ccc
? ? }
? ? .panel-header,.panel-bottom{
? ? ? height: 20px;
? ? ? background-color:antiquewhite;
? ? }
? ? .panel-body{
? ? ? min-height: 50px;
? ? }
? </style>
<div class="app">
? ? <!--多個(gè)slot分發(fā)內(nèi)容 v-for遍歷-->
? ? ?<panel2 v-for="item in list">
? ? ? ?<h2 slot="title">{{item.title}}</h2>
? ? ? ?<p slot="desc">{{item.desc}}</p>
? ? ? ?<span slot="tims">{{item.tims}}</span>
? ? ?</panel2>
? </div>
<!--組件模板-->
<script type="text/x-Template" id="panelTpl">
   <div class="panel">
       <div class="panel-header"><slot name="title"></slot></div>
       <div class="panel-body">
         <slot name="desc"></slot>
       </div>
       <div class="panel-bottom"><slot name="tims"></slot></div>
   </div>
</script>
<script type="text/javascript">
var panelTpl={
  template:'#panelTpl'
}
var vm=new Vue({
  el:'.app',
  components:{//注冊組件
    "panel2":panelTpl
  },
  data:{
    list:[
      {title:'新聞一標(biāo)題',desc:'一的描述',tims:'2018-07-19'},
      {title:'新聞二標(biāo)題',desc:'二的描述',tims:'2018-07-18'},
      {title:'新聞三標(biāo)題',desc:'三的描述',tims:'2018-07-17'}
    ]
  }
});
</script>

slot的多種用法

基本用法

//組件
<template>
    <div class="com">
        <slot name="header"></slot>
        <slot>如果沒有插槽或者不具名就是顯示當(dāng)前</slot>
        <slot name="floot"></slot>
    </div>
</template>
<script>
    export default {
        
    }
</script>
 
//使用
<template>
	<div id="app">
		<com>
			<div class="header" slot="header">
				我將會(huì)插入到名為header的插槽當(dāng)中
			</div>
			<div class="floot" slot="floot">
				我將會(huì)插入到名為floot的插槽當(dāng)中
			</div>
		</com>
	</div>
</template>
<script>
import com from '@/components/com.vue';
export default {
	name:"App",
	components:{
		com
	}
}
</script>
 

插槽中使用data

//組件
<template>
    <div class="com">
        <slot name="header" :slotData="comData"></slot>//slotData表示插槽key值
        <slot>如果沒有插槽或者不具名就是顯示當(dāng)前</slot>
        <slot name="floot" :slotData="comData"></slot>
    </div>
</template>
 
<script>
    export default {
        data() {
            return {
                comData:{
                    header:"我將會(huì)插入到名為header的插槽當(dāng)中",
                    floot:"我將會(huì)插入到名為floot的插槽當(dāng)中"
                }
            }
        },
    }
</script>
 
//使用
<template>
	<div id="app">
		<com>
			<template v-slot:header="{slotData}">
                //必須使用template包裹,v-slot后面跟著的是插槽名,slotData插槽里表示的key值
				<div class="header">
					{{slotData.header}}
				</div>
			</template>
			<template v-slot:floot="{slotData}">
				<div class="floot">
					{{slotData.floot}}
				</div>
			</template>
		</com>
	</div>
</template>
<script>
import com from '@/components/com.vue';
export default {
	name:"App",
	components:{
		com
	}
}
</script>

動(dòng)態(tài)插槽

//組件
<template>
    <div class="com">
        <slot name="header" :slotData="comData"></slot>
        <slot name="body" :slotData="comData"></slot>
        <slot name="floot"></slot>
    </div>
</template>
 
<script>
    export default {
        data() {
            return {
                comData:{
                    header:"我將會(huì)插入到名為header的插槽當(dāng)中",
                    body:"我將會(huì)插入到名為body的插槽當(dāng)中"
                }
            }
        },
    }
</script>
 
//使用
<template>
	<div id="app">
		<com>
			<template v-slot:[slotName]="{slotData}">
				<div class="slot">
					{{slotData[slotName]}}
				</div>
			</template>
			<div class="floot" slot="floot">
				<button @click="changeSlotName">改變動(dòng)態(tài)插槽</button>
			</div>
		</com>
	</div>
</template>
<script>
import com from '@/components/com.vue';
export default {
	name:"App",
	components:{
		com
	},
	data(){
		return{
			slotName:"header"
		}
	},
	methods: {
		changeSlotName(){
			this.slotName = this.slotName === "header" ? "body" : "header";
		}
	}
}
</script>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 解決安裝arco-design-pro-vue失敗問題

    解決安裝arco-design-pro-vue失敗問題

    這篇文章主要為大家介紹了解決安裝arco-design-pro-vue失敗的問題方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 詳解Vue 中 extend 、component 、mixins 、extends 的區(qū)別

    詳解Vue 中 extend 、component 、mixins 、extends 的區(qū)別

    這篇文章主要介紹了Vue 中 extend 、component 、mixins 、extends 的區(qū)別,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • vue3中element-plus?icon圖標(biāo)的正確使用姿勢

    vue3中element-plus?icon圖標(biāo)的正確使用姿勢

    element-plus官方提示,Icon圖標(biāo)正在向SVG?Icon遷移,之前使用的Font?Icon即將被棄用,下面這篇文章主要給大家介紹了關(guān)于vue3中element-plus?icon圖標(biāo)的正確使用姿勢,需要的朋友可以參考下
    2022-03-03
  • Vue指令之v-for的使用說明

    Vue指令之v-for的使用說明

    這篇文章主要介紹了Vue指令之v-for的使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue實(shí)現(xiàn)列表垂直無縫滾動(dòng)

    vue實(shí)現(xiàn)列表垂直無縫滾動(dòng)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)列表垂直無縫滾動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue使用JSEncrypt實(shí)現(xiàn)rsa加密及掛載方法

    Vue使用JSEncrypt實(shí)現(xiàn)rsa加密及掛載方法

    這篇文章主要介紹了Vue使用JSEncrypt實(shí)現(xiàn)rsa加密及掛載方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 解決vue單頁面修改樣式無法覆蓋問題

    解決vue單頁面修改樣式無法覆蓋問題

    這篇文章主要介紹了vue單頁面修改樣式無法覆蓋問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Vue?展示.md文件的方法詳解

    Vue?展示.md文件的方法詳解

    這篇文章主要介紹了Vue?展示.md文件的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • vue中nextTick用法實(shí)例

    vue中nextTick用法實(shí)例

    在本篇文章里小編給大家整理了關(guān)于vue中nextTick用法實(shí)例以及相關(guān)代碼內(nèi)容,需要的朋友們可以參考下。
    2019-09-09
  • vue實(shí)現(xiàn)移動(dòng)端div拖動(dòng)效果

    vue實(shí)現(xiàn)移動(dòng)端div拖動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端div拖動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論