小程序监听globalData值改变

140 阅读1分钟

通过使用 eventBus 来监听

eventBus.js

import Vue from 'vue';
export const EventBus = new Vue();

app.vue

<script>
	import {
		EventBus
	} from './utils/eventBus.js';
	export default {
	globalData: {
	   spid: 0
	},
	methods: {

	},
	onLoad() {
	    console.log('onoad')
	},
	onLaunch: function() {
	let that = this;
	setInterval(() => {
	     that.globalData.spid++;
	     EventBus.$emit('spidChanged', that.globalData.spid); // Emit event
	   }, 1000);
	},
	onShow: function() {
	  console.log('App Show')
	},
	onHide: function() {
	   console.log('App Hide')
	}
}
</script>

<style>
	/*每个页面公共css */
</style>

其他页面使用

<template>
  <div>
    <p>Current spid: {{ spid }}</p>
  </div>
</template>

<script>
import { EventBus } from './eventBus';

export default {
  data() {
    return {
      spid: 0
    };
  },
  created() {
    EventBus.$on('spidChanged', (newSpid) => {
      this.spid = newSpid;
    });
  },
  beforeDestroy() {
    EventBus.$off('spidChanged'); // Clean up the listener
  }
}
</script>