1. 程式人生 > >用vue構建專案筆記5(在vue-cli專案中引用公用方法)(vue resource統一處理)

用vue構建專案筆記5(在vue-cli專案中引用公用方法)(vue resource統一處理)

之前用cli腳手架構建的專案廢了,又讓我改成jq了,悲劇,這次這個專案用純vue實現了,哈哈。下面介紹如何引入全域性方法供每個元件都能呼叫。

1.建立一個js檔案,我起的名字叫做“common.js”,放在assets>js下。

2.在common.js檔案中寫入公用方法

export default{
  install(Vue,options){
    Vue.prototype.url= "http://www.baidu.com/"   //可以自定義變數
    Vue.prototype.myFun = function (ev) { //給自定義方法起個名
     ev + 1;
        return ev;  
    }
    
   
    Vue.http.interceptors.push(function ( request, next ) {      //附贈一個可以控制頁面所有路由開始之前結束之後的方法
    // 請求傳送前的處理邏輯
//					console.log(request)
//					console.log(next)
		    next(function (response) {   
		    	// 請求傳送後的處理邏輯
		    	// 更具請求的狀態, response引數會返回給 successCallback或errorCallback
//					console.log(response.data.result)
					if(response.data.result == undefined){
						this.$router.push('/')
					}
//		        return response
		    });
		    
		});
  }
}
上面由三部組成,一個自定義變數,一個自定義方法,一個可以控制頁面所有路由開始前和結束後的方法,我寫的是如果路由後狀態值為空跳到主頁。

3.在main.js中引入公用js   (這裡我遇到一個坑,common.js中如果有resource,必須要注意main,js中的書寫順序,如果不先呼叫resource,common.js中關於ajax呼叫會找不到方法)

import common from './assets/js/common.js'
Vue.use(common);
4.在元件中只用公用方法

同在methods中定義的方法一致,使用this.myFun(1)呼叫方法,呼叫變數為this.url。

注意,變數名稱最好不要重名,這是一個好習慣。方法如果嘗試ES6寫法可能會報錯,悠著點。