基礎事例:
在vue項目main.js文件中:
Vue.prototype.$appName = 'My App'
這樣你可以通過在原型上定義它們使其在每個 Vue 的實例中可用。
new Vue({ beforeCreate: function () { console.log(this.$appName) } })
控制台會打印出 My App
。就這么簡單!
“為什么 appName
要以 $
開頭?這很重要嗎?它會怎樣?”
$
是在 Vue 所有實例中都可用的屬性的一個簡單約定。這樣做會避免和已被定義的數據、方法、計算屬性產生沖突。
比如寫成:
Vue.prototype.appName = 'My App'
在vue實例中:
new Vue({ data: {
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
,來避免和插件或未來的插件相沖突。
內容來自vue官網 https://cn.vuejs.org/v2/cookbook/adding-instance-properties.html