最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue.js slot插槽的作用域插槽用法詳解

 更新時間:2021年09月14日 10:29:31   作者:貓老板的豆  
這篇文章主要介紹了Vue.js slot插槽的作用域插槽用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

沒有插槽的情況

<div id="app">
    <child>
        <span>1111</span>    
    </child>
</div>


<script>
    // 注冊子組件
    Vue.component("child", {
        template: "<div>這是一個div標簽</div>"
    });

    // 初始化父組件
    new Vue({
        el: "#app"
    });
</script>

模版里的 span標簽 會被替代成 “<div>這是一個div標簽</div>” 如下圖:

這里寫圖片描述

Vue2.x 插槽

有插槽的情況

簡單來說,使用 slot標簽 ,可以將<span>1111</span>,放到子組件中想讓他顯示的地方。如下圖:

<div id="app">
    <child>
        <span>1111</span>    
    </child>
</div>


<script>
    // 注冊子組件
    Vue.component("child", {
        template: "<div>這是<slot></slot>一個div標簽</div>"
    });

    // 初始化父組件
    new Vue({
        el: "#app"
    });
</script>

這里寫圖片描述

即使有多個標簽,會一起被插入,相當于用父組件放在子組件里的標簽,替換了<slot></slot>這個標簽。如下圖:

<div id="app">
    <child>
        <span>1111</span>   
        <i>2222</i>
        <b>3333</b>
    </child>
</div>


<script>
    // 注冊子組件
    Vue.component("child", {
        template: "<div>這是<slot></slot>一個div標簽</div>"
    });

    // 初始化父組件
    new Vue({
        el: "#app"
    });
</script>

這里寫圖片描述

具名插槽

  1. 父組件在要分發(fā)的標簽里添加 slot="xxx" 屬性
  2. 子組件在對應(yīng)分發(fā)的位置的 slot標簽 里,添加 name="xxx" 屬性
  3. 然后就會將對應(yīng)的標簽放在對應(yīng)的位置了。如下圖:
<div id="app">
    <child>
        <span slot="one">1111</span>
        <i slot="two">2222</i>
        <b slot="three">3333</b>
    </child>
</div>


<script>

    // 注冊子組件
    Vue.component("child", {
        template:   `<div>
                        這是
                        <slot name='one'></slot>
                        一個
                        <slot name='two'></slot>
                        div
                        <slot name='three'></slot>
                        標簽
                    </div>`
    });


    // 初始化父組件
    new Vue({
        el: "#app"
    });
</script>

這里寫圖片描述

沒有slot屬性

如果子組件標簽中沒有slot屬性,將會顯示默認的值

    <div id="app">
        <child>
            <!-- <span slot="one">1111</span> -->
            <i slot="two">2222</i>
            <!-- <b slot="three">3333</b> -->
        </child>
    </div>

    <script>
        // 注冊子組件
        Vue.component("child", {
            template:   `<div>
                            <slot name='one'>no one</slot>
                            <slot name='two'>no two</slot>
                            <slot name='three'>no three</slot>
                        </div>`

        });

        // 初始化父組件
        new Vue({
            el: "#app"
        });
    </script>

slot="two" 就被插到固定的位置上,如下圖:

這里寫圖片描述

插槽簡單實例應(yīng)用

想想你的電腦主板上的各種插槽,有插CPU的,有插顯卡的,有插內(nèi)存的,有插硬盤的,所以假設(shè)有個組件是computer,其模板是template ,如下:

<body>
    <div id="app">
        <computer>
            <div slot="CPU">Intel Core i7</div>
            <div slot="GPU">GTX980Ti</div>
            <div slot="Memory">Kingston 32G</div>
            <div slot="Hard-drive">Samsung SSD 1T</div>
        </computer>
    </div>

    <script>
        // 注冊子組件
        Vue.component("computer", {
            template:   `<div>
                            <slot name="CPU">這兒插你的CPU</slot>
                            <slot name="GPU">這兒插你的顯卡</slot>
                            <slot name="Memory">這兒插你的內(nèi)存</slot>
                            <slot name="Hard-drive">這兒插你的硬盤</slot>
                        </div>`
        });

        // 初始化父組件
        new Vue({
            el: "#app"
        });
    </script>
</body>

這里寫圖片描述

作用域插槽 ( 2.1.0 新增 )

作用域插槽是一種特殊類型的插槽,用作一個 (能被傳遞數(shù)據(jù)的) 可重用模板,來代替已經(jīng)渲染好的元素。

  1. 在子組件中,只需將數(shù)據(jù)傳遞到插槽,就像你將 prop 傳遞給組件一樣
  2. 在父組件中,通過 slot-scope="scoped" 的形式,獲取子組件傳遞過來的數(shù)據(jù),該數(shù)據(jù)對象的別名為 scoped。這就是作用域插槽的模板。
<div id="app">
    <child>
    	<!-- 2. 接收myName數(shù)據(jù),scoped 為 { "myName": "貓老板的豆" } -->
        <template slot="content" slot-scope="scoped"> 
            <div>{{ scoped.myName }}</div>
        </template>
    </child>
</div>

<script>
	Vue.component('child', {
		data () {
			return {
				myName: '貓老板的豆'
			}
		},
		template: `<slot name="content" :myName="myName"></slot>`   // 1. 對外拋出 myName 數(shù)據(jù)
	})
	
	new Vue({
		el: "#app"
	});
</script>

Vue3.x 插槽

插槽

<!-- 父組件 -->
<template>
	<Child>
		<!-- Vue2.x寫法
		<div slot="parent">
            <div>父組件</div>
		</div>
		 -->
		<template v-slot:parent>
            <div>父組件</div>
        </template>
	</Child>
</template>


<!-- 子組件 -->
<template>
	<slot name='parent'>子組件</slot>
</template>

作用域插槽

在 Vue2.x 中具名插槽和作用域插槽分別使用 slotslot-scope 來實現(xiàn), 在 Vue3.x 中將 slotslot-scope進行了合并統(tǒng)一使用

父組件:

<template>
	<Child>
		<!-- <template slot="content" slot-scope="scoped">  -->
		<template v-slot:content="scoped">
			<div>{{scoped.myName}}</div>
		</template>
	</Child>
</template>

子組件:

<template>
	<slot name="content" :myName="myName"></slot>
</template>

<script>

import { ref } from 'vue'
export default {
	setup () {

		let myName = ref("貓老板的豆")

		return { myName }
	},
}
</script>

到此這篇關(guān)于Vue.js slot插槽的作用域插槽用法詳解的文章就介紹到這了,更多相關(guān)Vue.js slot插槽的作用域插槽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在vue3中動態(tài)加載遠程組件的流程步驟

    在vue3中動態(tài)加載遠程組件的流程步驟

    在一些特殊的場景中(比如低代碼、減少小程序包體積、類似于APP的熱更新),我們需要從服務(wù)端動態(tài)加載.vue文件,然后將動態(tài)加載的遠程vue組件渲染到我們的項目中,今天這篇文章我將帶你學(xué)會,在vue3中如何去動態(tài)加載遠程組件,感興趣的小伙伴跟著小編一起來看看吧
    2024-08-08
  • 使用Mockjs模擬接口實現(xiàn)增刪改查、分頁及多條件查詢

    使用Mockjs模擬接口實現(xiàn)增刪改查、分頁及多條件查詢

    Mock.js是一個模擬數(shù)據(jù)生成器,可以讓前端獨立于后端進行開發(fā),下面這篇文章主要給大家介紹了關(guān)于使用Mockjs模擬接口實現(xiàn)增刪改查、分頁及多條件查詢的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Vue+SpringBoot開發(fā)V部落博客管理平臺

    Vue+SpringBoot開發(fā)V部落博客管理平臺

    V部落是一個多用戶博客管理平臺。這篇文章主要介紹了Vue+SpringBoot開發(fā)V部落博客管理平臺,需要的朋友可以參考下
    2017-12-12
  • vue訪問未定義的路由時重定向404問題

    vue訪問未定義的路由時重定向404問題

    這篇文章主要介紹了vue訪問未定義的路由時重定向404問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • uni-app中使用ECharts配置四種不同的圖表(示例詳解)

    uni-app中使用ECharts配置四種不同的圖表(示例詳解)

    在uni-app中集成ECharts可以為我們的應(yīng)用提供強大的圖表功能,我們詳細說一下如何在uni-app中使用ECharts,并配置四種不同的圖表,感興趣的朋友跟隨小編一起看看吧
    2024-01-01
  • vue實現(xiàn)按鈕切換圖片

    vue實現(xiàn)按鈕切換圖片

    這篇文章主要為大家詳細介紹了vue實現(xiàn)按鈕切換圖片,正向反向以及順序切換,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • vue瀑布流組件實現(xiàn)上拉加載更多

    vue瀑布流組件實現(xiàn)上拉加載更多

    這篇文章主要為大家詳細介紹了vue瀑布流組件實現(xiàn)上拉加載更多,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners)

    Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners)

    這篇文章主要介紹了Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners),需要的朋友可以參考下
    2018-05-05
  • Vue實現(xiàn)一個返回頂部backToTop組件

    Vue實現(xiàn)一個返回頂部backToTop組件

    本篇文章主要介紹了Vue實現(xiàn)一個返回頂部backToTop組件,可以實現(xiàn)回到頂部效果,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07
  • Vue組件通信之父傳子與子傳父詳細講解

    Vue組件通信之父傳子與子傳父詳細講解

    這篇文章主要介紹了React中父子組件通信詳解,在父組件中,為子組件添加屬性數(shù)據(jù),即可實現(xiàn)父組件向子組件通信,文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-10-10

最新評論

梓潼县| 贵州省| 东阿县| 阿勒泰市| 牙克石市| 财经| 竹山县| 平塘县| 滁州市| 郑州市| 岱山县| 吉林省| 台东市| 德州市| 元朗区| 友谊县| 仁怀市| 略阳县| 崇左市| 上饶市| 玉屏| 如东县| 民勤县| 鄂托克旗| 镇坪县| 山东省| 镇江市| 湄潭县| 湘西| 安西县| 政和县| 武清区| 海门市| 内乡县| 庆元县| 富源县| 永川市| 施秉县| 汽车| 晋城| 察隅县|