vue的prototype和攔截器


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;
    });    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM