vue3 Bate setup屬性介紹

對(duì)于vue3街州,在上篇做了一個(gè)簡(jiǎn)單基本的介紹,沒(méi)有觀看的可以點(diǎn)擊:vue3簡(jiǎn)單了解谆奥,vue3的好處就不多說(shuō)了眼坏,此篇是介紹vue3一些基本的屬性和組件用途拂玻。


1). Setup

了解setup配置項(xiàng)酸些,vue3中著重強(qiáng)調(diào)了setup是怎么用如何用,setup主要有倆個(gè)參數(shù)檐蚜,props魄懂,context,其中第二個(gè)參數(shù)是 contextcontext 是一個(gè)普通的 JavaScript 對(duì)象闯第,它暴露三個(gè)組件的 property市栗,attrsslots咳短,emit,這也對(duì)我們后面操作很有幫助填帽。

~1.Props的使用

props可以說(shuō)是針對(duì)父子組件傳值時(shí)用,用法上大徑相同咙好,取值方面略有不同篡腌。

//父組件
<About :name='name'></About>  //引入子組件

import About from './About.vue'
import {ref} from 'vue'  //響應(yīng)式聲明,ref是聲明基本數(shù)據(jù)類型
export default {
  components:{
    About
  },
  setup(){
    const name = ref('Hello Vue3!!')  //聲明變量時(shí)勾效,用ref包裹

    return {  //必須return `诘俊E迅Α!
      name  
    }
  }
}

//子組件
<template>
  <div class="about">
    <h1>{{ name }}</h1>
  </div>
</template>

<script>
import { toRefs } from "vue";   //解構(gòu)props傳過(guò)來(lái)的值
export default {
  props: {       //必須得寫(xiě)接收的屬性杨伙,大致跟vue2相同
    name: String,
  },
  setup(props) {
    console.log(props);  //Proxy {name: "Hello Vue3!!"}
    const { name } = toRefs(props);  //解構(gòu)name
    return {
      name,
    };
  },
};
</script>
image

~2.context的使用

context是一個(gè)普通的 JavaScript 對(duì)象其监,也就是說(shuō),它不是響應(yīng)式的限匣,這意味著你可以安全地對(duì) context 使用 ES6 解構(gòu)抖苦。

setup(props, context)
                ↓↓
setup(props, { attrs, slots, emit })
第一個(gè)是attrs

首先說(shuō)下attrs和props區(qū)別,attrs算是props的加強(qiáng)版:
1米死、props 要先聲明才能取值睛约,attrs 不用先聲明
2、props 聲明過(guò)的屬性哲身,attrs 里不會(huì)再出現(xiàn)
3辩涝、props 不包含事件,attrs 包含
4勘天、props 支持 string 以外的類型怔揩,attrs 只有 string 類型
想了解更多props,attrs區(qū)別

//父組件
<About :name="name" @click="dome1" @change="dome1" @mousedown="dome1"></About>

setup(props, { attrs, slots, emit }) {
    const name = ref("Hello Vue3!!");

    const dome1 = () => {
      console.log('dome1');
    }

    return {
      name,
      dome1
    };
  },

//子組件
setup(props, { attrs, slots, emit }) {
    console.log(props);
    console.log(attrs);
 },
image

從上圖我們可以看出,attrs不會(huì)打印props一樣的屬性脯丝,但是attrs可以打印方法商膊,這樣方便我們定義方法時(shí),可以直接使用,attrs更為方便

第二個(gè)是slots

slots是對(duì)于插槽的變更宠进,可以獲取到組件之間的值晕拆。

//父組件
<About>Hello World!!!</About>

//子組件
<script>
import { h } from "vue";   //引入h配置
export default {
  props: {
    name: String,
  },
  setup(props, { attrs, slots, emit }) {
    
    console.log(slots); //Proxy {default: ?, _: 1, __vInternal: 1}
    
    return () => h('h1',{'class':'h1'},slots.default())  //用h來(lái)取到里面的值,并且可以設(shè)置樣式類名
  },
};
</script>

<style lang="scss">
  .h1{
    background: red;
  }
</style>

這樣用的話有個(gè)壞處材蹬,就是只能return這個(gè)h配置实幕,不能在setup里面做任何處理了,這塊如果有知道的堤器,感謝留言@ケ印!闸溃!


第三個(gè)是emit

emit跟vue2用法一樣整吆,只不過(guò)vue3中emit是暴露出來(lái)的,可以直接使用

//子組件
<button @click="emits">點(diǎn)擊傳值</button>

const emits = () => {
      emit("listVal", { name: "Vue3"});
 };

//父組件
<About @listVal='listVal'>Hello World!!!</About>

setup(props, { attrs, slots, emit }) {
    
    const listVal = (val) => {
      console.log(val);
    }

    return {
      listVal
    };
  },

以上是對(duì)vue3 setup中一些屬性的理解辉川,還沒(méi)有寫(xiě)完表蝙,等待更新,謝謝乓旗!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末府蛇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子寸齐,更是在濱河造成了極大的恐慌欲诺,老刑警劉巖抄谐,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異扰法,居然都是意外死亡蛹含,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)塞颁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浦箱,“玉大人,你說(shuō)我怎么就攤上這事祠锣】峥” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵伴网,是天一觀的道長(zhǎng)蓬推。 經(jīng)常有香客問(wèn)我,道長(zhǎng)澡腾,這世上最難降的妖魔是什么沸伏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮动分,結(jié)果婚禮上毅糟,老公的妹妹穿的比我還像新娘。我一直安慰自己澜公,他們只是感情好姆另,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著坟乾,像睡著了一般迹辐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上糊渊,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天右核,我揣著相機(jī)與錄音,去河邊找鬼渺绒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛菱鸥,可吹牛的內(nèi)容都是我干的宗兼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼氮采,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼殷绍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起鹊漠,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤主到,失蹤者是張志新(化名)和其女友劉穎茶行,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體登钥,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡畔师,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了牧牢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片看锉。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖塔鳍,靈堂內(nèi)的尸體忽然破棺而出伯铣,到底是詐尸還是另有隱情,我是刑警寧澤轮纫,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布腔寡,位于F島的核電站,受9級(jí)特大地震影響掌唾,放射性物質(zhì)發(fā)生泄漏蹬蚁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一郑兴、第九天 我趴在偏房一處隱蔽的房頂上張望犀斋。 院中可真熱鬧,春花似錦情连、人聲如沸叽粹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)虫几。三九已至,卻和暖如春挽拔,著一層夾襖步出監(jiān)牢的瞬間辆脸,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工螃诅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啡氢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓术裸,卻偏偏與公主長(zhǎng)得像倘是,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子袭艺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容