当前位置: 首页> 汽车> 维修 > 教育培训网站制作_上海公司牌照申请流程_优化设计七年级上册数学答案_佛山百度快速排名优化

教育培训网站制作_上海公司牌照申请流程_优化设计七年级上册数学答案_佛山百度快速排名优化

时间:2025/8/23 12:59:28来源:https://blog.csdn.net/nihui123/article/details/146206158 浏览次数: 1次
教育培训网站制作_上海公司牌照申请流程_优化设计七年级上册数学答案_佛山百度快速排名优化

  在 Vue 3 中,Vue.prototype 已被移除,不能再直接向 Vue 的原型上添加全局属性或方法。取而代之的方式是使用 app.config.globalProperties 进行全局属性的挂载。

替代方式

  如果你想在 Vue 3 中实现类似 Vue.prototype.$project = base.getProjectName() 的功能,可以这样做:

import { createApp } from 'vue';
import App from './App.vue';
import base from './base'; // 假设 base 里有 getProjectName 方法const app = createApp(App);// Vue 2 写法:Vue.prototype.$project = base.getProjectName()
// Vue 3 写法:
app.config.globalProperties.$project = base.getProjectName();app.mount('#app');

在组件中使用

  在 Vue 组件中,你可以通过 this.$project 访问该全局属性:

<script setup>
import { getCurrentInstance } from 'vue';const instance = getCurrentInstance();
console.log(instance.appContext.config.globalProperties.$project);
</script>

  或者在 Options API 里直接使用:

<script>
export default {mounted() {console.log(this.$project); // 访问全局属性}
}
</script>

更推荐的做法

  虽然 app.config.globalProperties 提供了类似 Vue.prototype 的功能,但在 Vue 3 中,官方更推荐使用 依赖注入(Provide/Inject) 或 Pinia(Vuex 替代方案) 来管理全局状态,尤其是复杂的项目。

  如果是简单的全局配置,可以使用 provide/inject:

// main.js
app.provide('projectName', base.getProjectName());

  然后在组件中使用:

<script setup>
import { inject } from 'vue';const projectName = inject('projectName');
console.log(projectName);
</script>

  这样会更加符合 Vue 3 的最佳实践。

关键字:教育培训网站制作_上海公司牌照申请流程_优化设计七年级上册数学答案_佛山百度快速排名优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: