国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue組件間傳值之插槽

這篇具有很好參考價(jià)值的文章主要介紹了vue組件間傳值之插槽。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

什么是插槽?

插槽就是子組件中的提供給父組件使用的一個(gè)占位符,用 表示,父組件可以在這個(gè)占位符中填充任何模板代碼,如 HTML、組件等,填充的內(nèi)容會(huì)替換子組件的標(biāo)簽。插槽顯不顯示、怎樣顯示是由父組件來(lái)控制的,而插槽在哪里顯示就由子組件來(lái)進(jìn)行控制。

vue中插槽也是父子組件通訊的一種方式。

組件最大的特性就是復(fù)用性,插槽能大大提高組件的復(fù)用性。

  1. 通過(guò)插槽 ,父組件可以把一段(模板的)結(jié)構(gòu)傳遞給子組件 。
  2. 用于實(shí)現(xiàn)組件的內(nèi)容分發(fā), 通過(guò) slot 標(biāo)簽, 可以接收到寫在組件標(biāo)簽內(nèi)的內(nèi)容
  3. vue提供組件插槽能力, 允許開(kāi)發(fā)者在封裝組件時(shí),把不確定的部分定義為插槽

組件插槽的基本使用

        <div id="app">
			<my-com>Hello </my-com>
			<my-com>
				<a href="">點(diǎn)擊</a>
			</my-com>
			<my-button>點(diǎn)擊</my-button>
			<my-button>提交</my-button>
			<my-button @click="num++">
				<div>總共點(diǎn)擊了{(lán){num}}次</div>
			</my-button>
		</div>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.37/vue.global.js"></script>
		<script>
			var app=Vue.createApp({
				data:function(){
					return{
						num:0
					}
				},
				methods: {
				},
			});
			app.component("MyCom",{
				template:`<div class="my-com">
					子組件
					<div>
					<slot></slot>
					</div>
				</div>`,
			});
			app.component("MyButton",{
				template:`<button>
					<slot></slot>
				</button>`,
			});
			app.mount("#app");
		</script>

具名插槽

  • 具有名字的插槽
  • 使用 中的 “name” 屬性綁定元素
  • 通過(guò)slot屬性來(lái)指定, 這個(gè)slot的值必須和下面slot組件得name值對(duì)應(yīng)上 如果沒(méi)有匹配到 則放到匿名的插槽中
        <div id="app">
			<my-com>
				<!-- 具名插槽 -->
				<template v-slot:header>頭部</template>
				<template v-slot:default> 默認(rèn)插槽</template>
				<!-- <template v-slot:footer>底部</template> -->
				<!-- 簡(jiǎn)寫 v-slot用#代替-->
				<template #footer>底部</template>
			</my-com>
		</div>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.37/vue.global.js"></script>
		<script>
			var app=Vue.createApp({
				data:function(){
					return{
						num:0
					}
				},
				methods: {
				},
			});
			app.component("MyCom",{
				template:`<div class="my-com">
					<div class="header">
						<slot name="header"></slot>
					</div>
					<div class="body">
						<slot></slot>
					</div>
					<div class="footer">
						<slot name="footer"></slot>
					</div>
				</div>`,
			});
			app.mount("#app");
		</script>

總之,slot存在于子組件,v-slot在父組件,最終頁(yè)面展示結(jié)果是父組件!?。?/p>

作用域插槽:父組件對(duì)子組件的內(nèi)容進(jìn)行加工處理。

作用域插槽也可以理解為帶數(shù)據(jù)的插槽,即帶參數(shù)的插槽,簡(jiǎn)單的來(lái)說(shuō)就是子組件提供給父組件的參數(shù),該參數(shù)僅限于插槽中使用,父組件可根據(jù)子組件傳過(guò)來(lái)的插槽數(shù)據(jù)來(lái)進(jìn)行不同的方式展現(xiàn)和填充插槽內(nèi)容。

        <div id="app">
			<my-com>
				<!--子給父?jìng)鳎焊附M件接受子組件傳過(guò)來(lái)的值 -->
				<template v-slot:header="data">
					<!-- data只能在當(dāng)前模板內(nèi)部使用 -->
					頭部
					{{data}}
					<br>
					{{data.msg}}
				</template>
				<!--解構(gòu)賦值: v-slot:default="msg,age" -->
				<template v-slot:default="{msg:text,age}"> 
					默認(rèn)插槽
					<!--msg 別名text -->
					{{text}}
					{{age}}
				</template>
				<template #footer>底部</template>
			</my-com>
		</div>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.37/vue.global.js"></script>
		<script>
			var app=Vue.createApp({
				data:function(){
					return{
						num:0
					}
				},
				methods: {
				},
			});
			app.component("MyCom",{
				template:`<div class="my-com">
					<div class="header">
						<slot name="header" :msg="msg" :age="age"></slot>
					</div>
					<div class="body">
						<slot :msg="msg" :age="age"></slot>
					</div>
					<div class="footer">
						<slot name="footer"></slot>
					</div>
				</div>`,
				data(){
					return{
						msg:"Jack",
						age:10,
					}
				}
			});
			
			app.mount("#app");
		</script>

結(jié)果:

vue組件間傳值之插槽

父組件給子組件數(shù)據(jù),在父組件可以通過(guò):data的形式實(shí)現(xiàn):

        <div id="app">
			<my-com>
				<template v-slot:header :data="datas">
					<!-- data只能在當(dāng)前模板內(nèi)部使用 -->
					頭部
					{{datas}}
					<br>
					{{datas.msg}}
				</template>	
			</my-com>
		</div>

補(bǔ)充:作用域插槽與element-plus的聯(lián)合使用

        <div id="app">
			<el-table :data="tableData" style="width: 100%">
				<el-table-column label="日期" prop="date" width="180">
				</el-table-column>
				<el-table-column label="名字" prop="name" width="180">
					<template #default="{row}"><span>{{row.name}}</span></template>
				</el-table-column>
				<el-table-column label="地址" prop="address" width="180">
				</el-table-column>
				<el-table-column label="Operations">
					<template #default="{row}">
						<el-button @click="onClick(row)" type="success">詳情</el-button>
					</template>
				</el-table-column>
			  </el-table>
		</div>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.37/vue.global.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/element-plus/2.2.10/index.full.min.js"></script>
		<script>
			var app=Vue.createApp({
				data:function(){
					return{
						num:0,
						tableData:[
						  {
						    date: '2016-05-03',
						    name: 'Tom',
						    address: 'No. 189, Grove St, Los Angeles',
						  },
						  {
						    date: '2018-05-20',
						    name: 'Jack',
						    address: 'No. 189, Grove St, Los Angeles',
						  },
						  {
						    date: '2020-05-04',
						    name: 'Rose',
						    address: 'No. 189, Grove St, Los Angeles',
						  },
						  {
						    date: '2022-11-29',
						    name: 'Lucy',
						    address: 'No. 189, Grove St, Los Angeles',
						  },
						]
					}
				},
				methods: {
					onClick(row){
						console.log(row);
					}
				},
			});
			app.use(ElementPlus);//注冊(cè)組件
			app.mount("#app");
		</script>

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-439962.html

到了這里,關(guān)于vue組件間傳值之插槽的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue3父子組件間傳參通信

    Vue3父子組件間傳參通信

    本文主要是記錄Vue3在setup語(yǔ)法糖下的父子組件間傳參的四種方式 Vue3+TypeScript 父組件傳值給子組件主要是由父組件為子組件通過(guò)v-bind綁定數(shù)值,而后傳給子組件;子組件則通過(guò)defineProps接收使用。 如下為父組件 Father.vue 如下為子組件Son.vue 父組件 Father.vue 中在調(diào)用 Son.vue 這個(gè)子

    2024年01月19日
    瀏覽(26)
  • C# AsyncLocal 是如何實(shí)現(xiàn) Thread 間傳值

    C# AsyncLocal 是如何實(shí)現(xiàn) Thread 間傳值

    這個(gè)問(wèn)題的由來(lái)是在 .NET高級(jí)調(diào)試訓(xùn)練營(yíng)第十期 分享ThreadStatic底層玩法的時(shí)候,有朋友提出了 AsyncLocal 是如何實(shí)現(xiàn)的,雖然做了口頭上的表述,但總還是會(huì)不具體,所以覺(jué)得有必要用 文字+圖表 的方式來(lái)系統(tǒng)的說(shuō)一下這個(gè)問(wèn)題。 在 C# 編程中實(shí)現(xiàn)多線程以及線程切換的方式大

    2024年01月25日
    瀏覽(23)
  • C# Winform 多進(jìn)程窗體間傳值->SendMessage()

    在 C# 的 Windows Forms 中,使用 Windows API 的 SendMessage 方法可以實(shí)現(xiàn)窗口間的消息通傳遞,當(dāng)然也可以在不同的進(jìn)程之間發(fā)送消息。接下來(lái),我將為您提供一個(gè)基本的示例,演示如何使用 SendMessage 以及如何重寫 WndProc 方法來(lái)接收并處理消息。 首先,你需要添加對(duì)Windows API的引用:

    2024年02月14日
    瀏覽(22)
  • Vue——?jiǎng)討B(tài)組件、插槽

    Vue——?jiǎng)討B(tài)組件、插槽

    1.ref屬性(也可以實(shí)現(xiàn)組件間通信:子和父都可以實(shí)現(xiàn)通信) ref放在 標(biāo)簽 上,拿到的是 原生的DOM節(jié)點(diǎn) ref放在 組件 上,拿到的是 組件對(duì)象 ?,對(duì)象中的數(shù)據(jù)、函數(shù) 都可以直接使用 通過(guò)這種方式實(shí)現(xiàn)子傳父(this.$refs.mychild.text) 通過(guò)這種方式實(shí)現(xiàn)父?jìng)髯樱ㄕ{(diào)用子組件方法傳

    2024年02月01日
    瀏覽(22)
  • Vue組件之間傳值

    Vue組件之間傳值

    首先總結(jié)一下vue里面?zhèn)髦档膸追N關(guān)系: 如上圖所示, A與B、A與C、B與D、C與F組件之間是父子關(guān)系; B與C之間是兄弟關(guān)系;A與D、A與E之間是隔代關(guān)系; D與F是堂兄關(guān)系,針對(duì)以上關(guān)系 我們把組件之間傳值歸類為: 1.父子組件之間的通訊 2.非父子組件之間的通訊(兄弟組件 隔代

    2024年02月09日
    瀏覽(20)
  • Vue 組件之間傳值

    一、Vue 組件之間傳值的主要方法 Vue 3 對(duì)于組件之間傳遞值的基本思想與 Vue 2 相似,但是有一些語(yǔ)法和 API 上的改變,主要的傳值方法有以下幾種: 1、父組件向子組件傳值,使用 props:可以通過(guò)在子組件上綁定 props,然后在父組件中通過(guò) v-bind 綁定相應(yīng)的數(shù)據(jù)來(lái)傳遞數(shù)據(jù)。

    2024年02月02日
    瀏覽(17)
  • 【vue2】組件進(jìn)階與插槽詳解

    【vue2】組件進(jìn)階與插槽詳解

    ??博???????主: 初映CY的前說(shuō)(前端領(lǐng)域) ??個(gè)人信條: 想要變成得到,中間還有做到! ?? 本文核心 :v-modedl表單雙向綁定、ref|$ref操作dom、dynamic動(dòng)態(tài)組件、$nextTick同步、匿名插槽、具名插槽、作用域插槽 目錄(文末有給大家準(zhǔn)備好的Xmind思維導(dǎo)圖) 一、組件進(jìn)階 1.

    2024年02月03日
    瀏覽(23)
  • vue 進(jìn)階---動(dòng)態(tài)組件 插槽 自定義指令

    vue 進(jìn)階---動(dòng)態(tài)組件 插槽 自定義指令

    目錄 動(dòng)態(tài)組件 如何實(shí)現(xiàn)動(dòng)態(tài)組件渲染 使用 keep-alive 保持狀態(tài) keep-alive 對(duì)應(yīng)的生命周期函數(shù) keep-alive 的 include 屬性和exclude屬性? 插槽 插槽的基礎(chǔ)用法 具名插槽 作用域插槽 自定義指令 自定義指令的分類 私有自定義指令 全局自定義指令 了解 eslint?插件的?配置 axios?掛載到

    2024年02月13日
    瀏覽(23)
  • Vue.js 中的插槽是什么?如何使用插槽?

    Vue.js 中的插槽是什么?如何使用插槽?

    在 Vue.js 中,插槽是一種組件之間通信的機(jī)制,允許父組件向子組件傳遞內(nèi)容,并在子組件中進(jìn)行渲染。本文將介紹 Vue.js 中插槽的概念、優(yōu)勢(shì)以及如何使用插槽。 在 Vue.js 中,插槽是一種組件之間通信的機(jī)制,允許父組件向子組件傳遞內(nèi)容,并在子組件中進(jìn)行渲染。Vue.js 中

    2024年02月07日
    瀏覽(26)
  • vue3組件傳值方法

    提示:vue組件傳值學(xué)習(xí)用vue3語(yǔ)法 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 1.在父組件中引入子組件并通過(guò) components 注冊(cè) 父組件內(nèi)容示例: html 內(nèi)容 js 內(nèi)容 import child from \\\"../components/Child/Child\\\"; 子組件內(nèi)容示例 html 內(nèi)容 js 內(nèi)容 props: { msg: { type: String, default: \\\"\\\", }, },

    2024年02月07日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包