diff options
| author | Paul Oliver <contact@pauloliver.dev> | 2026-03-21 01:36:24 +0100 |
|---|---|---|
| committer | Paul Oliver <contact@pauloliver.dev> | 2026-04-04 05:53:37 +0200 |
| commit | eaa730d2895f57d9745ea2474e02d194ea16f48d (patch) | |
| tree | 408cc661c598138dc91531713be514e7547a1a9f /data/js/vue-app.js | |
| parent | 9f7e70904e6c0fa650323ac5e50ebf6003da333c (diff) | |
Adds data server (WIP)data_improvements
Diffstat (limited to 'data/js/vue-app.js')
| -rw-r--r-- | data/js/vue-app.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/data/js/vue-app.js b/data/js/vue-app.js new file mode 100644 index 0000000..80a813f --- /dev/null +++ b/data/js/vue-app.js @@ -0,0 +1,24 @@ +const { createApp } = Vue +const { loadModule } = window['vue3-sfc-loader'] + +const addStyle = styleStr => { + const style = document.createElement('style') + const ref = document.head.getElementsByTagName('style')[0] || null + style.textContent = styleStr + document.head.insertBefore(style, ref) +} + +const getFile = url => fetch(url).then(resp => resp.ok ? resp.text() : Promise.reject(resp)) +const moduleCache = { vue: Vue } + +const options = { addStyle, getFile, moduleCache } + +const app = createApp({ + components: { + App: Vue.defineAsyncComponent(() => loadModule('vue/App.vue', options)), + Section: Vue.defineAsyncComponent(() => loadModule('vue/Section.vue', options)), + Plot: Vue.defineAsyncComponent(() => loadModule('vue/Plot.vue', options)), + }, +}) + +app.mount('#app') |
