Vue.prototype 官網地址
如果需要設置全局變量,在main.js中,Vue實例化的代碼里添加。
不想污染全局作用域。這種情況下,你可以通過在原型上定義它們使其在每個 Vue 的實例中可用。
Vue.prototype.$appName = ‘My App’
這樣 $appName 就在所有的 Vue 實例中可用了,甚至在實例被創建之前就可以。如果我們運行:
new Vue({
beforeCreate: function () {
console.log(this.$appName)
}
})
則控制台會打印出 My App
。就這么簡單! $appName前面的$主要為了區分,防止重名。
Vue 攔截器
- 攔截器: 對特定的http請求或響應消息或請求頭進行驗證,攔截不合法的http交互以保證web環境的安全。
- 攔截器起一個攔截作用攔,在請求接口時,多一次或多次驗證。例如:你寫了幾個請求數據的接口,開啟服務后,用戶沒登錄直接訪問這些接口,也是可以拿到數據的,但這就違背了后台管理系統必須先登錄的原則,一些不良用心的人就會利用這個漏洞來竊取你的數據庫數據了。這時就需要到攔截器了。
- 前后台交互一定要遵循一個原則:互不信任原則。前端發送到后台的參數(必須在前端驗證合法的才能發送),后台必須驗證是否合法(是否符合該參數的原定數據類型和值范圍),后台返回給前端的數據,也必須驗證是否為約定的數據結構和值類型。
攔截器原理和實現
- 這里引用第三方的ajax庫 –> axios
- axios: 基於ES6新語法promise的一個前端ajax庫
// http請求攔截 axios.interceptors.request.use(config => { //請求攔截 return config; }); // http響應攔截 axios.interceptors.response.use(response => { //響應攔截 return response; });