vue3.0setup中props纤怒、provide/inject用法糯而,教你快速上手03

1.props在setup中的使用

由于setup內(nèi)部是不能用this的天通,你的props并不能在setup內(nèi)部方法里用this.xx去拿到,setup接受兩個(gè)參數(shù)props和context

export default {
  name: 'Test',
  props: ['name', 'age'],
  // setup(props, context) { // 有的時(shí)候會(huì)這樣寫熄驼,你可能只用得到emit
  setup(props,{attrs, slots, emit}) // 如果你都用得到你可以這樣解構(gòu)的寫出來像寒,這個(gè)不是響應(yīng)式的,所以可解構(gòu)
   // 錯(cuò)誤寫法 const {name} = props 這里我理解你肯定想直接就使用name瓜贾,age等
   // 這個(gè)props是一個(gè)響應(yīng)式的Proxy對象诺祸,不可以解構(gòu),解構(gòu)后悔失去響應(yīng)祭芦,如果要用解構(gòu)的方式筷笨,要用toRefs
    let { name, age } = toRefs(props)
    // 現(xiàn)在是不是感覺可以直接就用操作name和age了,天真龟劲,轉(zhuǎn)成ref了胃夏,所有的訪問值都要xx.value
   console.log(name.value,age.value)
   // 所以倒回去,是不是覺得還不如直接用props.name直接訪問代理對象的值要好點(diǎn)
   console.log(props.name, props.age)

   // context 
   // 看到這個(gè)context的參數(shù)你應(yīng)該知其意了撒
   //  attrs: 相當(dāng)于vue2.0的$attrs,意思就是傳進(jìn)來的屬性值除了props接受的那部分
   // slots: 就是插槽昌跌,你要獲取插槽的什么值的話可以用這個(gè)
   // 插槽這里解釋下仰禀,可能有部分人不知道咋拿值,順便說下蚕愤,這里vue3.0的所有響應(yīng)式數(shù)據(jù)都是Proxy對象答恶,所以你取值的時(shí)候都是proxy.xxx獲取
   slots.default(args => {
    console.log('這里就是你在vue2.0里看到的所有slot的數(shù)組饺蚊,就可以取你要哪個(gè)插槽的值了', args)
   })
   // emit: 這個(gè)是vue2.0 的$emit
   emit('方法名', '參數(shù)') // vue2.0 this.$emit('方法名', '參數(shù)')
    ...
  }
}
2.provide和inject

vue2.0的用法可以去看下vue2.0的文檔,vue3.0中可以把provide和inject放在setup中使用悬嗓,還挺方便的

// 老父親組件
import { provide, ref, reactive } from 'vue'
export default {
  name: 'Test',
  setup() {
    // 用法: provide(key, value) 用下面的ref和reactive是為了讓數(shù)據(jù)變成響應(yīng)式的污呼,父組件變化,子組件數(shù)據(jù)跟著變
    const name = ref('小哥哥')
    const obj = reactive({
      name: '土狗',
      age: '3歲'
    })
    provide('name', name)
    provide('animal', obj)
  }
}
// 乖兒孫組件
import { inject } from 'vue'
export default {
  name: 'Child,
  setup() {
    // 用法: inject(key) 
    const name = inject('name')
    const animal = inject('animal')
    return {
      name,
      animal
    }
  }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末包竹,一起剝皮案震驚了整個(gè)濱河市曙求,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌映企,老刑警劉巖悟狱,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異堰氓,居然都是意外死亡挤渐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門双絮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浴麻,“玉大人,你說我怎么就攤上這事囤攀∪砻猓” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵焚挠,是天一觀的道長膏萧。 經(jīng)常有香客問我,道長蝌衔,這世上最難降的妖魔是什么榛泛? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮噩斟,結(jié)果婚禮上曹锨,老公的妹妹穿的比我還像新娘。我一直安慰自己剃允,他們只是感情好沛简,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斥废,像睡著了一般椒楣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上营袜,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天撒顿,我揣著相機(jī)與錄音,去河邊找鬼荚板。 笑死凤壁,一個(gè)胖子當(dāng)著我的面吹牛吩屹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拧抖,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼煤搜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了唧席?” 一聲冷哼從身側(cè)響起擦盾,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淌哟,沒想到半個(gè)月后迹卢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡徒仓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年腐碱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掉弛。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡症见,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出殃饿,到底是詐尸還是另有隱情谋作,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布乎芳,位于F島的核電站遵蚜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏秒咐。R本人自食惡果不足惜谬晕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一碘裕、第九天 我趴在偏房一處隱蔽的房頂上張望携取。 院中可真熱鬧,春花似錦帮孔、人聲如沸雷滋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晤斩。三九已至,卻和暖如春姆坚,著一層夾襖步出監(jiān)牢的瞬間澳泵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工兼呵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兔辅,地道東北人腊敲。 一個(gè)月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像维苔,于是被迫代替她去往敵國和親碰辅。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

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