Vue.prototype詳解


參考地址:Vue.prototype詳解

如果需要設置 全局變量,在main.js中,Vue實例化的代碼里添加。

不想污染全局作用域。這種情況下,你可以通過在 原型 上定義它們使其在每個Vue實例中可用。

Vue.prototype.$http = axios;

  這樣 $http 就在所有Vue實例中可用了,甚至在實例被創建之前就可以用。 如果我們運行:

new Vue({
    beforeCreate: function() {
        console.log(this.$http)
    }
});

  則控制台會打印出

 

 

  你可能會好奇:

  “為什么 http 要以 $ 開頭? 這很重要嗎? 他會怎樣?”

  這里沒有什么魔法。$ 是在Vue 所有實例都可用的屬性 的一個簡單約定。這樣做會避免與已被定義的數據、方法、計算屬性產生沖突。

  “你指的沖突是什么意思?”

  另一個好問題!如果你寫成:

Vue.prototype.http = axios

  那么你希望下面的代碼輸出什么呢?

new Vue({
    data: {
        http: '123456'
    },
    beforeCreate: function() {
        console.log(this.http)
    },
    created: function() {
        console.log(this.http)
    }
});

  日志中會先出現

 

,然后出現'123456',因此 this.http 在實例創建之后被data覆寫了。我們通過 $ 為實例屬性設置 作用域 避免這種事情發生。你可以根據你的喜好使用自己的約定,諸如 $_http 或 Ωhttp,來避免和插件或未來的插件相沖突。


免責聲明!

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



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