uniapp拿到全局对象
时间: 2023-08-31 09:05:12 浏览: 70
在 UniApp 中,可以通过`uni.$emit`和`uni.$on`方法来获取全局对象。
要在一个页面中获取全局对象,可以使用以下步骤:
1. 在 App.vue 组件的 `created` 生命周期钩子函数中使用 `uni.$emit` 方法来发送一个事件,并传递全局对象作为参数。例如:`uni.$emit('getGlobalObject', globalObject)`。
2. 在需要获取全局对象的页面中,可以使用 `uni.$on` 方法来监听这个事件,并在回调函数中获取全局对象。例如:
```javascript
uni.$on('getGlobalObject', (globalObject) => {
// 在这里处理全局对象
console.log(globalObject);
});
```
这样,在页面渲染时,就能够获取到全局对象了。请注意,这种方式只适用于获取全局对象,如果需要更新全局对象,可以使用其他方法进行操作。
相关问题
uniapp vue3全局变量
在Uniapp中设置全局变量的方法如下[^1]:
1. 在App.vue中定义全局变量:
```javascript
export default {
globalData: {
db_picture: 'https://testimg.xxxxx.com/',
uploadUrl: 'https://test.xxxxx.com',
userName: '白居易'
},
onLaunch() {
console.log(this.$scope.globalData.userName);
}
}
```
在App.vue中的`globalData`对象中定义了全局变量`userName`,可以在整个应用中访问。
2. 在其他页面中使用全局变量:
```vue
<template>
<view>
<!-- 注意,不能在模板中直接使用 getApp().globalData.userName -->
<<琵琶行>>的作者是:{{author}}
</view>
</template>
<script>
export default {
data() {
return {
author: ''
}
},
onShow() {
// 每次A.vue出现在屏幕上时,都会触发onShow,从而更新author值
this.author = getApp().globalData.userName;
}
}
</script>
```
通过在其他页面的`onShow`生命周期函数中,使用`getApp().globalData.userName`来获取全局变量的值,并将其赋给页面中的数据属性`author`,从而在模板中显示全局变量的值。
uniapp挂载全局对象后调用变量提示undefined
如果您在uniapp中挂载了全局对象,但在调用该对象的变量时提示undefined,可能是因为您没有正确地引用该全局对象。请确保在需要使用该全局对象的页面或组件中正确地引用了该对象,例如:
1. 在main.js中定义全局对象:
```
Vue.prototype.$myGlobal = {
name: 'Global Object'
}
```
2. 在需要使用该全局对象的页面或组件中引用该对象:
```
export default {
mounted() {
console.log(this.$myGlobal.name) // 输出:Global Object
}
}
```
如果您已经正确地引用了该全局对象,但仍然无法访问该对象的属性或方法,请检查该对象是否已正确地初始化。