vue-cli 使用vue-bus來(lái)全局控制的實(shí)例講解
講真,我寫(xiě)標(biāo)題的時(shí)候不知道怎么寫(xiě)的好,之前寫(xiě)過(guò)一篇關(guān)于vue-bus的,不過(guò)是基礎(chǔ)版本的,今天講的是用腳手架來(lái)搭建的環(huán)境下的使用
與使用路由相似,我們需要先倒入這個(gè)vue-bus
指令如下:
npm install vue-bus
導(dǎo)入成功后,我們就要去使用它,(還是參考路由)
我們?cè)诖a中寫(xiě)下:
<code class="language-html">import bus from "vue-bus" Vue.use(bus); </code>
是的,這跟路由很想,這點(diǎn)無(wú)需懷疑,接著我們可以參考下我上回的那個(gè)模板。依舊是三部曲,現(xiàn)在我們已經(jīng)完成了部署環(huán)境這一步,接著是要去提交(emit方法)
this.$bus.$emit("password", this.password);
但是,這里要注意一點(diǎn),就是作用域的問(wèn)題,(es5寫(xiě)法下)。比如在下面代碼中:
methods1: function(a) { console.log(a); var _this = this; //轉(zhuǎn)化為base64,并且顯示在頁(yè)面上 console.log(a.target.files[0]); var image = new Image(); var reader = new FileReader(); reader.readAsDataURL(a.target.files[0]); reader.onload = function(e) { console.log(e.target.result); _this.imglist[a.target.dataset.index].img = e.target.result; } },
上方代碼是一段將file轉(zhuǎn)化為base64的代碼。其中,當(dāng)我們?cè)谧钔鈱邮褂胻his的時(shí)候,他的指向是我們想要的,包含這個(gè)組件的this,但是當(dāng)我們?cè)趏nload函數(shù)中使用this,那就嘻嘻了,所以這些由于自己不小心踏入的坑要避免
接著我們上去獲取我們所要的信息,依舊是用on方法(相似的,如果是使用once方法。則是只有一次)
很多情況下,由于on方法是去監(jiān)聽(tīng),所以我們是要越早定義越好,所以基本都是在created中定義
created: function() { console.log(this.showinfo); var _this = this; this.$bus.$on("changes", function(a, b) { console.log(_this.showinfo); //this.showinfo[0].text="2017-00-00"; _this.showinfo = [{ text: "生日", value: "2017-01-01" }, { text: "星座", value: "白羊座" }, { text: "職業(yè)", value: "IT" }] }, ); _this.$bus.$on("showmyticket", function() { _this.isshowbarrage_black=true; _this.isshowmyticket=true; }); },
其中應(yīng)該都注意到了,這里依舊是那個(gè)坑的問(wèn)題,如果不這樣做,我們?cè)谑褂眠^(guò)后可能會(huì)出現(xiàn)這個(gè)現(xiàn)象
這就是bug大的出生原因了,這時(shí)候我們就要考慮作用域的問(wèn)題了
基本就是這些。而且相對(duì)于vuex,vue-bus更簡(jiǎn)單,而且不會(huì)再局限于兄弟組件之間,而且在父子級(jí)別中也可以使用,但是請(qǐng)小心,因?yàn)樗潜O(jiān)聽(tīng)狀態(tài),所以使用emit的時(shí)候要謹(jǐn)慎,當(dāng)然,我也不強(qiáng)制要求你去銷毀這個(gè)bus,希望大家都多去試試。
以上這篇vue-cli 使用vue-bus來(lái)全局控制的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解VUE自定義組件中用.sync修飾符與v-model的區(qū)別
這篇文章主要介紹了詳解VUE自定義組件中用.sync修飾符與v-model的區(qū)別,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Element實(shí)現(xiàn)表格嵌套、多個(gè)表格共用一個(gè)表頭的方法
這篇文章主要介紹了Element實(shí)現(xiàn)表格嵌套、多個(gè)表格共用一個(gè)表頭的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05使用Element時(shí)默認(rèn)勾選表格toggleRowSelection方式
這篇文章主要介紹了使用Element時(shí)默認(rèn)勾選表格toggleRowSelection方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10vue addRoutes路由動(dòng)態(tài)加載操作
這篇文章主要介紹了vue addRoutes路由動(dòng)態(tài)加載操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08Vue3子組件實(shí)現(xiàn)v-model用法的示例代碼
在Vue 3中,實(shí)現(xiàn)自定義的input組件并支持v-model綁定,涉及到對(duì)modelValue這個(gè)默認(rèn)prop的處理和對(duì)應(yīng)的update:modelValue事件的觸發(fā),本文給大家介紹了Vue3子組件實(shí)現(xiàn)v-model用法的示例,需要的朋友可以參考下2024-04-04vite+element-plus項(xiàng)目基礎(chǔ)搭建的全過(guò)程
最近看完Vue3和Vite文檔之后,就寫(xiě)了個(gè)小demo,整體感覺(jué)下來(lái)還是很絲滑的,下面這篇文章主要給大家介紹了關(guān)于vite+element-plus項(xiàng)目基礎(chǔ)搭建的全過(guò)程,需要的朋友可以參考下2022-07-07基于vue-seamless-scroll實(shí)現(xiàn)無(wú)縫滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了基于vue-seamless-scroll實(shí)現(xiàn)無(wú)縫滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04vue 防止頁(yè)面加載時(shí)看到花括號(hào)的解決操作
這篇文章主要介紹了vue 防止頁(yè)面加載時(shí)看到花括號(hào)的解決操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11Vue為什么要謹(jǐn)慎使用$attrs與$listeners
這篇文章主要介紹了Vue為什么要謹(jǐn)慎使用$attrs與$listeners,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08