摘要:袓組件我是祖組件要給孫組件準(zhǔn)備的兒組件孫組件二的事件方式子向父傳遞兄弟之間組件我是兄長,弟弟收好了組件兄長,弟弟收到了。
一、vue的傳值方式
//child porops:{msg:String} //parent
//child data(){ return { hw:"我是子類父類可以調(diào)用" } } //parentthis.$refs.hw
provide:就相當(dāng)于加強(qiáng)版父組件propinject:就相當(dāng)于加強(qiáng)版子組件的props
只要在上一層級(jí)的聲明的provide,那么下一層級(jí)無論多深都能夠通過inject來訪問到provide的數(shù)據(jù)
提示:provide 和 inject 綁定并不是可響應(yīng)的。這是刻意為之的。然而,如果你傳入了一個(gè)可監(jiān)聽的對象,那么其對象的屬性還是可響應(yīng)的。
如果需要傳可響應(yīng)的值,請使用引用類型的數(shù)值,比如{}||[]等。
袓組件
兒組件
孫組件
二、vue的事件方式{{msg}}
//child this.$emit("add",good) //parent
Brother
Brother
$attrs:包含了父作用域不作為prop被識(shí)別(且獲取)的特性綁定(class和style除外),就是說,他獲取到的除了prop里的可以收到和元素自有屬性之外的所有自定義屬性$listeners:包含了父作用域中的 (不含 .native 修飾器的) v-on 事件監(jiān)聽器。它可以通過 v-on="$listeners" 傳入內(nèi)部組件——在創(chuàng)建更高層次的組件時(shí)非常有用。
$attrs:{{$attrs["two"]}}
$attrs:{{$attrs["one"]}}
總結(jié):可以用于傳值和事件從后代組件
//main.js里 Vue.prototye.dispatch = dispatch; /** eventName 派發(fā)事件名稱 data 派發(fā)的數(shù)據(jù) **/ function dispatch(eventName,data){ let parent = this.$parent while(parent){ parent.$emit(eventName,data) parent = parent.$parent; } }
后代組件
{{msg}}
祖組件
main.js
class Bus{ constructor(){ this.callbacks = {} } $on(name,fn){ this.callbacks[name] = this.callbacks[name] || [] this.callbacks[name].push(fn) } $emit(name,args){ if(this.callbacks[name]){ this.callbacks[name].forEach(cb=>cb(args)) } } } Vue.prototype.$bus = new Bus()
A組件
{{msg}}
B組件
最后一種使用Vuex,但vuex比較大,后續(xù)會(huì)跟上,敬請期待
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106907.html
摘要:我們需要在里改動(dòng)一下代碼首先就是綁定一個(gè)自定義事件再增加然后在中變成就是觸發(fā)父組件中的方法所以,觸發(fā)了父組件的函數(shù),改變了父組件的的值,父組件再通過傳值給子組件。從而實(shí)現(xiàn)數(shù)據(jù)傳遞,父子組件通信。 一、vue的父子組件之間是如何傳值的? 首先呢,需要說說的是,vue既然有雙向綁定,那為何會(huì)有父子組件之間的傳值問題?這個(gè)問題也簡單,vue的組件會(huì)供其他的vue頁面進(jìn)行調(diào)用,如果數(shù)組都是雙...
摘要:最近有時(shí)間,整理一下的知識(shí)點(diǎn),很多都是面試常見的的生命周期如果你能理解了這張圖,也就對的生命周期有了一個(gè)大致的了解。創(chuàng)建前后在階段,實(shí)例的掛載元素還沒有。模式下,前端的必須和實(shí)際向后端發(fā)起請求的一致,如。 最近有時(shí)間,整理一下Vue的知識(shí)點(diǎn),很多都是面試常見的 1、Vue的生命周期 如果你能理解了這張圖,也就對Vue的生命周期有了一個(gè)大致的了解。 showImg(https://s...
摘要:我的個(gè)人博客地址資源地址非父子組件傳值,事件總線的使用方式我的博客地址如果您對我的博客內(nèi)容有疑惑或質(zhì)疑的地方,請?jiān)谙路皆u(píng)論區(qū)留言,或郵件給我,共同學(xué)習(xí)進(jìn)步。 歡迎訪問我的個(gè)人博客:http://www.xiaolongwu.cn 前言 先說一下什么是事件總線,其實(shí)就是訂閱發(fā)布者模式; 比如有一個(gè)bus對象,這個(gè)對象上有兩個(gè)方法,一個(gè)是on(監(jiān)聽,也就是訂閱),一個(gè)是emit(觸發(fā),也就...
摘要:子傳父想要子傳父,通過子組件控制父組件方法,進(jìn)而讓父組件的方法自己改變自己的明確父組件綁定的上內(nèi)容作用域都屬于父組件的,因此傳值的都是父組件的或者例如下面的案例,首先和中左面都是子組件的接受的變量值,右面都有可能是父組件或者傳值簡單 vue 子傳父 1.想要子傳父,通過子組件控制父組件方法,進(jìn)而讓父組件的方法自己改變自己的data 2.明確父組件綁定的dom上內(nèi)容作用域都屬于父組件的,...
摘要:發(fā)明了,利用語法來創(chuàng)建虛擬。然而,對持久化實(shí)例的缺乏也意味著函數(shù)式組件不會(huì)出現(xiàn)在的組件樹里。這個(gè)很有用,當(dāng)你在父組件給子組件綁定事件時(shí)就需要這個(gè)了。之前考慮過用動(dòng)態(tài)組件來切換,但是放棄了,因?yàn)闆]有直觀啊。另外推薦大家多用函數(shù)式組件提高性能。 什么是JSX? JSX就是Javascript和XML結(jié)合的一種格式。React發(fā)明了JSX,利用HTML語法來創(chuàng)建虛擬DOM。當(dāng)遇到{ ...
閱讀 1491·2019-08-30 15:44
閱讀 1954·2019-08-30 14:07
閱讀 2881·2019-08-30 13:56
閱讀 2350·2019-08-29 17:06
閱讀 1333·2019-08-29 14:13
閱讀 2091·2019-08-29 11:28
閱讀 3238·2019-08-26 13:56
閱讀 1954·2019-08-26 12:11