$ 是在 Vue 所有實例中都可用的屬性的一個簡單約定。這樣做會避免和已被定義的數據、方法、計算屬性產生沖突。
你指的沖突是什么意思?”
另一個好問題!如果你寫成:
Vue.prototype.appName = ‘My App’
那么你希望下面的代碼輸出什么呢?
new Vue({ data: { // 啊哦,`appName` *也*是一個我們定義的實例屬性名!😯 appName: 'The name of some other app' }, beforeCreate: function () { console.log(this.appName) }, created: function () { console.log(this.appName) } })
日志中會先出現 “My App”,然后出現 “The name of some other app”,因為 this.appName 在實例被創建之后被 data 覆寫了。我們通過 $ 為實例屬性設置作用域來避免這種事情發生。你還可以根據你的喜好使用自己的約定,諸如 $_appName 或 ΩappName,來避免和插件或未來的插件相沖突。