用vue構建專案筆記5(在vue-cli專案中引用公用方法)(vue resource統一處理)
阿新 • • 發佈:2019-01-03
之前用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寫法可能會報錯,悠著點。