JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://unpkg.com/[email protected]/dist/vue.global.js"></script>
<script src="https://unpkg.com/[email protected]/dist/vue-router.global.js"></script>
<div id="app">
  <p>
    <router-link to="/">Go to Home</router-link>
    <router-link to="/about">Go to About</router-link>
  </p>
  <!--THIS DOES NOT RENDER CORRECTLY-->
  <iframe :src="src"></iframe>
  <router-view></router-view>
</div>

JavaScript

// Code is parsed with encodeURIComponent:
let source = "%0A%3Cscript%20src%3D%22https%3A%2F%2Funpkg.com%2Fvue%403.0.0%2Fdist%2Fvue.global.js%22%3E%3C%2Fscript%3E%0A%3Cscript%20src%3D%22https%3A%2F%2Funpkg.com%2Fvue-router%404.0.0-beta.12%2Fdist%2Fvue-router.global.js%22%3E%3C%2Fscript%3E%0A%3Cdiv%20id%3D%22app%22%3E%0A%20%20%3Cp%3E%0A%20%20%20%20%3Crouter-link%20to%3D%22%2F%22%3EGo%20to%20Home%3C%2Frouter-link%3E%0A%20%20%20%20%3Crouter-link%20to%3D%22%2Fabout%22%3EGo%20to%20About%3C%2Frouter-link%3E%0A%20%20%3C%2Fp%3E%0A%20%20%3Crouter-view%3E%3C%2Frouter-view%3E%0A%3C%2Fdiv%3E%0A%3Cscript%3E%0Aconst%20Home%20%3D%20%7B%20template%3A%20'%3Cdiv%3EHome%3C%2Fdiv%3E'%20%7D%0Aconst%20About%20%3D%20%7B%20template%3A%20'%3Cdiv%3EAbout%3C%2Fdiv%3E'%20%7D%0A%0Aconst%20routes%20%3D%20%5B%0A%20%20%7B%20path%3A%20'%2F'%2C%20component%3A%20Home%20%7D%2C%0A%20%20%7B%20path%3A%20'%2Fabout'%2C%20component%3A%20About%20%7D%2C%0A%5D%0A%0Aconst%20router%20%3D%20VueRouter.createRouter(%7B%0A%20%20history%3A%20VueRouter.createWebHashHistory()%2C%0A%20%20routes%0A%7D)%0A%0Aconst%20app%20%3D%20Vue.createApp(%7B%7D)%0Aapp.use(router)%0A%0Aapp.mount('%23app')%0A%3C%2Fscript%3E%0A"

// See the actual code:
console.log('Sourcecode', decodeURIComponent(source))

const Home = { template: '<div>Home</div>' }
const About = { template: '<div>About</div>' }
const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About },
]

const router = VueRouter.createRouter({
  history: VueRouter.createWebHashHistory(),
  routes,
})

const app = Vue.createApp({ data: function() { return {src: 'data:text/html,' + source } } })
app.use(router)
app.mount('#app')