vue-cli 使用vue-bus來全局控制的實(shí)例講解
講真,我寫標(biāo)題的時(shí)候不知道怎么寫的好,之前寫過一篇關(guān)于vue-bus的,不過是基礎(chǔ)版本的,今天講的是用腳手架來搭建的環(huán)境下的使用
與使用路由相似,我們需要先倒入這個(gè)vue-bus
指令如下:
npm install vue-bus

導(dǎo)入成功后,我們就要去使用它,(還是參考路由)
我們?cè)诖a中寫下:
<code class="language-html">import bus from "vue-bus" Vue.use(bus); </code>
是的,這跟路由很想,這點(diǎn)無需懷疑,接著我們可以參考下我上回的那個(gè)模板。依舊是三部曲,現(xiàn)在我們已經(jīng)完成了部署環(huán)境這一步,接著是要去提交(emit方法)
this.$bus.$emit("password", this.password);
但是,這里要注意一點(diǎn),就是作用域的問題,(es5寫法下)。比如在下面代碼中:
methods1: function(a) {
console.log(a);
var _this = this;
//轉(zhuǎn)化為base64,并且顯示在頁面上
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)聽,所以我們是要越早定義越好,所以基本都是在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è)坑的問題,如果不這樣做,我們?cè)谑褂眠^后可能會(huì)出現(xiàn)這個(gè)現(xiàn)象

這就是bug大的出生原因了,這時(shí)候我們就要考慮作用域的問題了

基本就是這些。而且相對(duì)于vuex,vue-bus更簡(jiǎn)單,而且不會(huì)再局限于兄弟組件之間,而且在父子級(jí)別中也可以使用,但是請(qǐng)小心,因?yàn)樗潜O(jiān)聽狀態(tài),所以使用emit的時(shí)候要謹(jǐn)慎,當(dāng)然,我也不強(qiáng)制要求你去銷毀這個(gè)bus,希望大家都多去試試。
以上這篇vue-cli 使用vue-bus來全局控制的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue ElementUI實(shí)現(xiàn):限制輸入框只能輸入正整數(shù)的問題
這篇文章主要介紹了Vue ElementUI實(shí)現(xiàn):限制輸入框只能輸入正整數(shù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue前端頁面數(shù)據(jù)加載添加loading效果的實(shí)現(xiàn)
這篇文章主要介紹了vue前端頁面數(shù)據(jù)加載添加loading效果的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Vue如何實(shí)現(xiàn)iframe的上一步、下一步操作
這篇文章主要介紹了Vue如何實(shí)現(xiàn)iframe的上一步、下一步操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Vue2?與?Vue3?的數(shù)據(jù)綁定原理及實(shí)現(xiàn)
這篇文章主要介紹了Vue2與Vue3的數(shù)據(jù)綁定原理及實(shí)現(xiàn),數(shù)據(jù)綁定是一種把用戶界面元素的屬性綁定到特定對(duì)象上面并使其同步的機(jī)制,使開發(fā)人員免于編寫同步視圖模型和視圖的邏輯2022-09-09
VUE引入騰訊地圖并實(shí)現(xiàn)軌跡動(dòng)畫的詳細(xì)步驟
這篇文章主要介紹了VUE引入騰訊地圖并實(shí)現(xiàn)軌跡動(dòng)畫,引入步驟大概是在 html 中通過引入 script 標(biāo)簽加載API服務(wù),結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
Elementui按鈕設(shè)置默認(rèn)選中狀態(tài)的實(shí)現(xiàn)過程
這篇文章主要給大家介紹了關(guān)于Elementui按鈕設(shè)置默認(rèn)選中狀態(tài)的實(shí)現(xiàn)過程,文中通過圖文以及示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Elementui具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-07-07

