JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://unpkg.com/vue@next"></script>
<div id="my-vue" class="demo">
  <banner></banner>
  <hr />
  <content></content>
</div>

CSS

.even {
  background-color:blue;
  color: #fff;
}

.odd {
  background-color:red;
  color:#fff;
}

JavaScript

const store = {
  generateNewValue() {
    let value = Math.floor(Math.random() * 10);
    console.log(value);
  }
};

const MyApp = {
  setup() {
    return {
    }
  }
}
const myApp = Vue.createApp(MyApp)

myApp.component("banner", 
  { 
    template: '<button @click="onGenerateClick">generate</button>',
    setup(props) {
      console.log('setting up...');
    },
    methods: {
      onGenerateClick() {
        store.generateNewValue();
      }
    }
  }
);

myApp.component("content", {
  template: '<div><span>Content</span><button @click="onGenerateClick">generate</button></div>',
  methods: {
    onGenerateClick() {
      store.generateNewValue();
    }
  }  
});

myApp.mount('#my-vue')