JSFiddle - React, Tailwind, and code Playground

by skirtle

HTML

<script src="https://unpkg.com/[email protected]/dist/vue.global.js"></script>
<div id="app">
  {{ tabServiceRef.selectedTab }}
  <button @click="setTab">Test</button>
</div>

JavaScript

const tabService = () => {
	return {
    selectedTab: {},
    
    setSelectedTab (tab) {
      console.log(this)
      this.selectedTab = tab;
    }
  };
};

const tabServiceFactory = tabService();

const App = {
  name: 'App',
  data() {
    return {
      tabServiceRef: tabServiceFactory,
    };
  },
  methods: {
    setTab() {
      this.tabServiceRef.setSelectedTab({
        value: Date.now()
      })
    }
  }
}

Vue.createApp(App).mount('#app')