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

vue3父子組件傳值中props使用細(xì)節(jié)淺析

 更新時(shí)間:2022年03月15日 10:57:09   作者:前端.攻城獅  
這篇文章主要給大家介紹了關(guān)于vue3父子組件傳值中props使用細(xì)節(jié)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

setup函數(shù)的參數(shù)

它主要有兩個(gè)參數(shù):

  • 第一個(gè)參數(shù):props :父組件傳遞過來的屬性會被放到props對象中
  • 第二個(gè)參數(shù):context:包含3個(gè)屬性
  1. attrs:所有的非prop的attribute
  2. slots:父組件傳遞過來的插槽(這個(gè)在以渲染函數(shù)返回時(shí)會有作用,后面會講到)
  3. emit:當(dāng)我們組件內(nèi)部需要發(fā)出事件時(shí)會用到emit

一、父組件要給子組件傳值時(shí),可以通過props來完成組件的通信

// 父組件
<template>
    // 通過自定義屬性的方式給子組件傳遞數(shù)據(jù)
	<message title="父組件中的值"></message>
</template>



// 子組件
<template>
    // 使用父組件傳遞過來的值
    <h2> {{title}} </h2>
</template>
<script>
	export default {
		// 通過props 接收父組件傳遞過來的數(shù)據(jù),模板中可以直接使用
		props: ['title'],

		setup(props, context) {
			// setup函數(shù)中要使用的話,要接收一下
			console.log(props.title)
        }
</script>

子組件中props兩種常見的用法

方式一:字符串?dāng)?shù)組,數(shù)組中的字符串就是父組件中引用子組件時(shí)自定義attribute的名稱

方式二:對象類型,我們可以在指定attribute名稱的同時(shí),指定它需要傳遞的類型,是否時(shí)必須的,默認(rèn)值等

細(xì)節(jié)一:props中屬性可以指定的類型

  • String
  • Number
  • Boolean
  • Array
  • Object
  • Date
  • Function
  • Symbol

細(xì)節(jié)二:props中不同類型的寫法

props: {
	// 基礎(chǔ)類型指定
	propA: Number,
	// 指定多個(gè)類型
	propB: [String, Number],
	// 指定必傳類型
	propC: {
		type: String,
		required: true
    },
    // 帶有默認(rèn)值的數(shù)字
    propD: {
		type: Number,
		default: 100
	},
	// 帶有默認(rèn)值的對象
	propE: {
		type: Object,
		// 對象或數(shù)組默認(rèn)值必須從一個(gè)工廠函數(shù)獲取
		default() {
			return { mes: 'lihua'}
		}
	},
	// 自定義驗(yàn)證函數(shù)
	propF: {
		validator(value) {
			return ['warning', 'success'].includes(value)
		}
	},
	// 具有默認(rèn)值的函數(shù)
	prorG: {
		type: Function,
		default() {
			return 'default function'
		}
	}
}

細(xì)節(jié)三:Props的大小寫命名

屬性命名不推薦駝峰命名法法,需要用 a-b(短橫線分隔命名)

二、子組件給父組件傳值

父組件

//父組件
<template>
    // 給子組件傳遞自定義函數(shù)
	<message @add="addNum"></message>
</template>
<script>
	export default {
		components: {
			message
		}
		setup() {
          const addNum = (value) => {
            // 接收子組件傳遞過來的值
			console.log(value)
          }
      
        // 導(dǎo)出方法提供給模板使用
        return {
          addNum
        }
	}
</script>

子組件

//子組件
<template>
    // 使用父組件傳遞過來的值
    <button @click="increment"></button>
</template>
<script>
	export default {
		// 1. 通過第二個(gè)參數(shù) context 接收父組件傳遞過來的方法
		setup(props, context) {
          const increment = () => {
            // 通過 context.emit觸發(fā)父組件的方法,第二個(gè)參數(shù)為傳遞的參數(shù),可以傳遞多個(gè)
			context.emit('add', 100)
			context.emit('add', 100, 'aaa', 'bbb')
          }
      
          // 導(dǎo)出方法提供給模板使用
          return {
            increment
          }
        }

        // 2. 通過第二個(gè)參數(shù) 解構(gòu) emits 接收父組件傳遞過來的函數(shù)
		setup(props, { emit }) {
          const increment = () => {
            // 通過emit觸發(fā)父組件的方法,第二個(gè)參數(shù)為傳遞的參數(shù),可以傳遞多個(gè)
			emit('add', 100)
			emit('add', 100, 'aaa', 'bbb')
          }
 
          return {
            increment
          }
        }
	}
</script>

總結(jié)

到此這篇關(guān)于vue3父子組件傳值中props使用細(xì)節(jié)的文章就介紹到這了,更多相關(guān)vue3父子組件傳值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3導(dǎo)入Elementplus時(shí)組件無法加載的情況及解決

    Vue3導(dǎo)入Elementplus時(shí)組件無法加載的情況及解決

    這篇文章主要介紹了Vue3導(dǎo)入Elementplus時(shí)組件無法加載的情況及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助
    2024-03-03
  • element?表格多級表頭子列固定的實(shí)現(xiàn)

    element?表格多級表頭子列固定的實(shí)現(xiàn)

    本文主要介紹了element?表格多級表頭子列固定的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • VUE?axios每次請求添加時(shí)間戳問題

    VUE?axios每次請求添加時(shí)間戳問題

    這篇文章主要介紹了VUE?axios每次請求添加時(shí)間戳問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue實(shí)現(xiàn)動態(tài)路由的詳細(xì)代碼示例

    vue實(shí)現(xiàn)動態(tài)路由的詳細(xì)代碼示例

    動態(tài)路由,動態(tài)即不是寫死的,是可變的,下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)動態(tài)路由的詳細(xì)代碼示例,文中通過圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 關(guān)于Vue單頁面骨架屏實(shí)踐記錄

    關(guān)于Vue單頁面骨架屏實(shí)踐記錄

    這篇文章主要給大家介紹了關(guān)于Vue單頁面骨架屏實(shí)踐的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-12-12
  • vue2.x 通過后端接口代理,獲取qq音樂api的數(shù)據(jù)示例

    vue2.x 通過后端接口代理,獲取qq音樂api的數(shù)據(jù)示例

    今天小編就為大家分享一篇vue2.x 通過后端接口代理,獲取qq音樂api的數(shù)據(jù)示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 關(guān)于Element-ui中table默認(rèn)選中toggleRowSelection問題

    關(guān)于Element-ui中table默認(rèn)選中toggleRowSelection問題

    這篇文章主要介紹了關(guān)于Element-ui中table默認(rèn)選中toggleRowSelection問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 組件庫中使用 vue-i18n 國際化的案例詳解

    組件庫中使用 vue-i18n 國際化的案例詳解

    這篇文章主要介紹了組件庫中使用 vue-i18n 國際化,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • VSCode開發(fā)UNI-APP 配置教程及插件

    VSCode開發(fā)UNI-APP 配置教程及插件

    uni-app 是一個(gè)使用 Vue.js 開發(fā)所有前端應(yīng)用的框架,今天通過本文給大家分享VSCode開發(fā)UNI-APP 配置教程及插件推薦與注意事項(xiàng),感興趣的朋友一起看看吧
    2021-08-08
  • vue源碼學(xué)習(xí)之Object.defineProperty對象屬性監(jiān)聽

    vue源碼學(xué)習(xí)之Object.defineProperty對象屬性監(jiān)聽

    這篇文章主要介紹了vue源碼學(xué)習(xí)之Object.defineProperty對象屬性監(jiān)聽,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論

凤阳县| 东海县| 大新县| 吕梁市| 淮南市| 英德市| 格尔木市| 郸城县| 鄂州市| 肇庆市| 万安县| 栾川县| 中牟县| 乌兰察布市| 上虞市| 东乌| 宁武县| 碌曲县| 兰西县| 太湖县| 弥渡县| 文水县| 济源市| 砚山县| 临邑县| 会东县| 巴里| 德庆县| 佛坪县| 平凉市| 渭南市| 通州区| 集安市| 农安县| 台北市| 武义县| 垦利县| 中江县| 南通市| 河北区| 大关县|