Vue.prototype详解
参考地址:Vue.prototype详解
如果需要设置 全局变量,在main.js中,Vue实例化的代码里添加。
不想污染全局作用域。这种情况下,你可以通过在 原型 上定义它们使其在每个Vue实例中可用。
1
|
Vue.prototype.$http = axios; |
这样 $http 就在所有Vue实例中可用了,甚至在实例被创建之前就可以用。 如果我们运行:
1
2
3
4
5
|
new Vue({ beforeCreate: function () { console.log( this .$http) } }); |
则控制台会打印出
你可能会好奇:
“为什么 http 要以 $ 开头? 这很重要吗? 他会怎样?”
这里没有什么魔法。$ 是在Vue 所有实例中都可用的属性 的一个简单约定。这样做会避免与已被定义的数据、方法、计算属性产生冲突。
“你指的冲突是什么意思?”
另一个好问题!如果你写成:
1
|
Vue.prototype.http = axios |
那么你希望下面的代码输出什么呢?
1
2
3
4
5
6
7
8
9
10
11
|
new Vue({ data: { http: '123456' }, beforeCreate: function () { console.log( this .http) }, created: function () { console.log( this .http) } }); |
日志中会先出现
,然后出现'123456',因此 this.http 在实例创建之后被data覆写了。我们通过 $ 为实例属性设置 作用域 避免这种事情发生。你可以根据你的喜好使用自己的约定,诸如 $_http 或 Ωhttp,来避免和插件或未来的插件相冲突。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了